注:本文主要介紹Asp.net Core 3.0後增長cookie代理功能。css
默認是增長了的。java
默認增長的這個有些問題所在,git
1.原來設置cookie方式將不可用,須要按照代理方式設置github
2.對於session也會失效。c#
若是使用session,目前知道的解決方案是不使用代理方式操做cooke。直接註釋掉就能夠了。cookie
關於新增cookie代理使用介紹以下:session
這篇主要介紹Microsoft.AspNetCore.CookiePolicy這個類庫的做用。app
IResponseCookies
接口,添加、刪除cookie時加入自定義控制方法,並支持全局cookie屬性設置。CookieOptions.IsEssential
的功能,該屬性標識當前屬性是否必須的或是否繞過ITrackingConsentFeature
的檢查。ITrackingConsentFeature
接口,該接口主要是向cookie中添加並檢索用戶確認設置。Asp.Net Core是一個高度組件化的框架,不少功能好比受權,認證,回話狀態等都是經過中間件的方式引入的,而Microsoft.AspNetCore.CookiePolicy擴展也是經過中間件的方式引入的。
在項目的Startup中添加以下代碼:框架
public class Startup { public void Configure(IApplicationBuilder app) { ... //cookie策略提供了UseCookiePolicy的兩個重載版本 app.UseCookiePolicy(); //app.UseCookiePolicy(new CookiePolicyOptions //{ // CheckConsentNeeded = _ => true, // HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.None, // MinimumSameSitePolicy = SameSiteMode.Strict, // Secure = CookieSecurePolicy.SameAsRequest, // OnAppendCookie = (context) => // { // context.IssueCookie = true; // }, // OnDeleteCookie = (context) => // { // } //}); ... app.UseMvc(); } }
該類是Microsoft.AspNetCore.CookiePolicy中的一個重要類,我須要的cookie修改監控,gdrp配置等都須要靠該類實現。組件化
IResponseCookies
接口,能夠實現添加、刪除的功能CookiePolicyOptions
類,咱們能夠修改cookie的全局配置,並在添加、刪除cookie時接受到通知,而後作一些你但願作的任何事情ITrackingConsentFeature
接口,能夠實現檢索、設置cookie的跟蹤配置,改配置主要用於GDPR