這篇文章主要介紹了asp.net core中如何使用cookie身份驗證的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
背景
ASP.NET Core Identity 是一個完整的全功能身份驗證提供程序,用于創(chuàng)建和維護登錄名。 但是, cookie 不能使用基于的身份驗證提供程序 ASP.NET Core Identity 。
配置
在 Startup.ConfigureServices 方法中,創(chuàng)建具有 AddAuthentication 和 AddCookie 方法的身份驗證中間件服務(wù):
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
app.UseAuthentication();
AuthenticationScheme 傳遞到 AddAuthentication 設(shè)置應(yīng)用程序的默認身份驗證方案。如果有多個 cookie 身份驗證實例,并且你想要使用特定方案進行授權(quán),AuthenticationScheme 會很有用。將 AuthenticationScheme 設(shè)置為CookieAuthenticationDefaults。AuthenticationScheme為方案提供值 "cookie"??梢蕴峁┤魏斡糜趨^(qū)分方案的字符串值。
應(yīng)用的身份驗證方案不同于應(yīng)用的 cookie 身份驗證方案。如果未向 AddCookie提供 cookie 身份驗證方案,則使用 CookieAuthenticationDefaults.AuthenticationScheme ("Cookie")。
默認情況下,身份驗證 cookie 的 IsEssential 屬性設(shè)置為 true。當站點訪問者未同意數(shù)據(jù)收集時,允許使用身份驗證 cookie。
登錄
若要創(chuàng)建保存用戶信息的 cookie,請構(gòu)造一個 ClaimsPrincipal。將對用戶信息進行序列化并將其存儲在 cookie 中。
使用任何所需的 Claim創(chuàng)建 ClaimsIdentity,并調(diào)用 SignInAsync 以登錄用戶:
/// <summary>
///
/// </summary>
/// <param name="model"></param>
/// <param name="returnUrl"></param>
/// <returns></returns>
[
SignInAsync 創(chuàng)建加密的 cookie,并將其添加到當前響應(yīng)中。如果未指定 AuthenticationScheme,則使用默認方案。
ASP.NET Core 的數(shù)據(jù)保護系統(tǒng)用于加密。對于托管在多臺計算機上的應(yīng)用程序、跨應(yīng)用程序或使用 web 場進行負載平衡,請將數(shù)據(jù)保護配置為使用相同的密鑰環(huán)和應(yīng)用程序標識符。
注銷
若要注銷當前用戶并刪除其 cookie,請調(diào)用 SignOutAsync:
/// <summary>
///
/// </summary>
/// <returns></returns>
[
參考資料
到此這篇關(guān)于asp.net core中如何使用cookie身份驗證的文章就介紹到這了,更多相關(guān)asp.net core用cookie身份驗證內(nèi)容請搜索深圳網(wǎng)站建設(shè)公司自由創(chuàng)想以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持深圳網(wǎng)站建設(shè)公司自由創(chuàng)想!