国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

詳解在ASP.NET Core 中使用Cookie中間件

2024-07-10 12:49:07
字體:
來源:轉載
供稿:網友

在 http:// ASP.NET Core 中使用Cookie中間件

ASP.NET Core 提供了Cookie中間件來序列化用戶主題到一個加密的Cookie中并且在后來的請求中校驗這個Cookie,再現用戶并且分配到HttpContext對象的User屬性中。如果你想提供自己的登錄方式和用戶數據你可以使用Cookie中間件來實現獨立的功能。

添加和配置

第一步是增加Cookie中間件到你的應用中。首先使用nuget增加Microsoft.AspNetCore.Authentication.Cookies 程序包。然后添加下面的幾行代碼到Startup.cs文件的Configure方法中,且要在app.UseMvc()之前。

app.UseCookieAuthentication(new CookieAuthenticationOptions() {  AuthenticationScheme = "MyCookieMiddlewareInstance",  LoginPath = new PathString("/Account/Unauthorized/"),  AccessDeniedPath = new PathString("/Account/Forbidden/"),  AutomaticAuthenticate = true,  AutomaticChallenge = true });

上面的代碼片段配置了一下幾個選項;

    認證方案:這是一個已知中間件的值,當有多個實例的中間件如果你想限制授權到一個實例時這個選項將會起作用。 登錄路徑:這是當用戶試圖訪問資源但未經過身份驗證時,程序將會將請求重定向到這個相對路徑。 禁止訪問路徑:當用戶試圖訪問資源時,但未通過該資源的任何授權策略,請求將被重定向到這個相對路徑。 自動認證:這個標志表明中間件應該會在每個請求上進行驗證和重建他創建的序列化主體。 自動挑戰:這個標志標明當中間件認證失敗時應該重定向瀏覽器到登錄路徑或者禁止訪問路徑。

其他選項包括設置中間件所創建的聲明的發行者,中間件存儲的cookie名稱,Cookie的域和cookie上的各種安全屬性。默認情況下Cookie中間件將使用適當的安全選項,設置HTTPONLY避免cookie在客戶端被JavaScript操作。當請求方式為HTTPS時限制Cookie的HTTPS操作。

創建Cookie

創建Cookie保存自己的信息,必須要初始化一個ClaimsPrincipal(類型)來序列化和保存你想保存的用戶信息到Cookie中。每一次的方法調用都會在你的Controller(控制器)中有一個合適的ClaimsPrincipal對象。

代碼如下:
await HttpContext.Authentication.SignInAsync("MyCookieMiddlewareInstance", principal);

上面的代碼將會創建一個加密的Cookie并且增加到當前的請求響應中。AuthenticationScheme明確規定在配置期間

退出

退出當前用戶的登錄,刪除登錄的cookie信息,可以在控制器中調用下面的方法。

代碼如下:
await HttpContext.Authentication.SignOutAsync("MyCookieMiddlewareInstance");

響應后端的變化

警告

一旦cookie創建就會成為身份單一認證的來源,即使在后臺系統已經不可用,中間件也是不知道的,并且始終保持登錄直到cookie失效。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华安县| 文山县| 辽宁省| 泾川县| 杭州市| 普兰县| 庄浪县| 东乌| 剑川县| 浮山县| 遂溪县| 西昌市| 天全县| 汉源县| 武平县| 宝坻区| 凤山市| 梅州市| 东海县| 青海省| 宜城市| 萝北县| 黔西县| 达日县| 射阳县| 大庆市| 奉节县| 毕节市| 连州市| 江永县| 孝感市| 克东县| 辽阳县| 镇雄县| 石屏县| 分宜县| 新丰县| 邵东县| 新乐市| 务川| 苏尼特右旗|