Asp.Net Core-身份驗證
在本章中,我們將簡要討論ASP.NET Core的身份驗證框架。 ASP.NET Core身份框架用於實現表單身份驗證。 有許多選項可供選擇,以識別您的使用者,包括Windows身份驗證和所有第三方身份提供商,如Google,Microsoft,Facebook和GitHub等。
-
Identity框架是我們將在project.js檔案中新增到我們的應用程式中的另一個依賴項。
-
此框架允許我們新增讓使用者可以註冊和使用本地密碼登入的功能。
-
該框架還支援雙因素身份驗證,第三方身份提供商和其他功能。
-
我們將關注使用者可以註冊和登入和登出的情況。
為此,我們需要建立一個User實體,並且該類將繼承自Identity框架中的一個基類,並且基類為我們提供使用者名稱和電子郵件地址等標準使用者屬性。
-
我們在這個類上可以包括儘可能多的額外的屬性,我們想要在這個類上儲存與我們的使用者有關的資訊。
-
我們需要獲取這個User類並將其插入Identity框架提供的UserStore類。
-
UserStore是我們的程式碼將與之交談以建立使用者和驗證使用者密碼的類。
-
最終,UserStore將與資料庫通訊。 Identity框架支援實體框架以及可以與實體框架一起使用的所有資料庫。
-
但是你可以實現自己的UserStore來處理任何資料來源。
-
為了正確地使用Entity Framework,我們的User類也將插入一個IdentityDb類。
-
這是一個使用實體框架DBContext做實際資料庫工作的類。
-
我們需要將這個IdentityDb包含到我們的應用程式中,使我們現有的DataContext類繼承自IdentityDb,而不是Entity Framework的DBContext。
-
正是IdentityDb和UserStore協同工作來儲存使用者資訊和驗證使用者密碼,資料庫中的雜湊密碼。
主要有兩個ASP.NET Core身份框架,現一一介紹。
SignInManager
這是身份框架的兩個部分之一 -
-
顧名思義,一旦我們驗證了密碼,SignInManager就可以登入使用者。
-
我們也可以使用此管理員簽署使用者。
-
使用表單身份驗證,登入和退出是通過管理cookie完成的。
-
當我們告訴SignInManager簽署一個使用者時,系統向用戶的瀏覽器發出一個cookie,瀏覽器會在每個後續請求中傳送這個cookie。 它可以幫助我們識別該使用者。
Identity 中介軟體
這是框架的第二部分 -
讀取由SignInManager傳送的cookie並識別使用者,這發生在框架的最後一個部分,即Identity Middleware。
我們需要將此中介軟體配置到我們的應用程式管道中,以處理由SignInManager設定的cookie。 我們還將在接下來的幾章中看到這個中介軟體的一些其他功能。