溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ASP.NET?Identity怎么使用

發(fā)布時間:2022-10-24 09:53:54 來源:億速云 閱讀:159 作者:iii 欄目:開發(fā)技術(shù)

這篇“ASP.NET Identity怎么使用”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“ASP.NET Identity怎么使用”文章吧。

在VS2013下新建項目,選擇"ASP.NET Web應(yīng)用程序。",點擊"確定"。

選擇"MVC"模版。

創(chuàng)建的網(wǎng)站包括三個核心組件:

  • 1、Microsoft.AspNet.Identity.EntityFramework

這是基于ASP.NET Identity的Entity Framework實現(xiàn),用來持久化ASP.NET Identity數(shù)據(jù)和架構(gòu),以及負責(zé)和SQL Server數(shù)據(jù)庫交互。

  • 2、Microsoft.AspNet.Identity.Core

包含了ASP.NET Identity的核心接口,用來針對不同的持久層,比如Azure Table Storeage, NoSQL數(shù)據(jù)庫等做不同的實現(xiàn)。

  • 3、Microsoft.AspNet.Identity.OWIN

OWIN是一個安全中間件,Microsoft在此基礎(chǔ)上作了再開發(fā),如記錄日志,產(chǎn)生cookie的時候用到。

各組件的依賴關(guān)系如圖:

ASP.NET?Identity怎么使用

F5運行項目。

點擊右上角的注冊按鈕,填寫注冊信息,點擊"注冊"按鈕,新用戶注冊成功并呈登錄狀態(tài)。

點擊VS2013的"停止調(diào)試"按鈕。

存儲的數(shù)據(jù)放在了哪呢?

右鍵App_Data,點擊"在文件資源管理器中打開文件",原來數(shù)據(jù)庫被存放在項目文件夾App_Data下了。

ASP.NET?Identity怎么使用

如何查看這些數(shù)據(jù)呢?

點擊VS2013的左上角"服務(wù)器資源管理器",右鍵"DefaultConnection",從中可以查看所有的數(shù)據(jù)。

ASP.NET?Identity怎么使用

比如用戶數(shù)據(jù)被存放在表"AspNetUsers"中。

ASP.NET?Identity怎么使用

點擊"注冊"按鈕,是把請求交給了AcccountController的Register這個Action。

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser() { UserName = model.UserName };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }
            // 如果我們進行到這一步時某個地方出錯,則重新顯示表單
            return View(model);
        }

以上,

  • 通過ApplicationUser來實例化一個用戶

  • 通過UserManager的靜態(tài)、異步方法CreateAsync創(chuàng)建用戶

  • 通過異步方法SignInAsync來讓用戶登錄

        private async Task SignInAsync(ApplicationUser user, bool isPersistent)
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
            var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
            AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
        }

以上

  • 所有驗證的事交給了AuthenticationManager,負責(zé)登錄登出

  • 把創(chuàng)建ClaimsIdentity交給了UserManager

至于登出,請求交給了AccountController的LogOff。

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult LogOff()
        {
            AuthenticationManager.SignOut();
            return RedirectToAction("Index", "Home");
        }

還沒有看到ASP.NET Idenity有多少過人之處,讓時間來告訴我們。

以上就是關(guān)于“ASP.NET Identity怎么使用”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI