Asp.Net Core Cookie使用,Asp.net Core Cookie操作失效
注:本文主要介绍Asp.net Core 3.0后增加cookie代理功能。
默认是增加了的。
默认增加的这个有些问题所在,
1.原来设置cookie方式将不可用,需要按照代理方式设置
2.对于session也会失效。
如果使用session,目前知道的解决方案是不使用代理方式操作cooke。直接注释掉就可以了。
关于新增cookie代理使用介绍如下:
这篇主要介绍Microsoft.AspNetCore.CookiePolicy这个类库的作用。
功能介绍
- 实现
IResponseCookies
接口,添加、删除cookie时加入自定义控制方法,并支持全局cookie属性设置。 - 实现
CookieOptions.IsEssential
的功能,该属性标识当前属性是否必须的或是否绕过ITrackingConsentFeature
的检查。 - 实现
ITrackingConsentFeature
接口,该接口主要是向cookie中添加并检索用户确认设置。
使用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配置等都需要靠该类实现。
总结
- cookie策略通过继承
IResponseCookies
接口,可以实现添加、删除的功能 - 通过
CookiePolicyOptions
类,我们可以修改cookie的全局配置,并在添加、删除cookie时接受到通知,然后做一些你希望做的任何事情 - cookie策略通过继承
ITrackingConsentFeature
接口,可以实现检索、设置cookie的跟踪配置,改配置主要用于GDPR