AspNet核心身份,如何设置options.Cookie.SameSite?
在最新的模板和库中使用了httpsonly标志。 我怎么能把它关掉?
同样的问题已经过时,它没有完整的配置示例:
AspNet核心身份 – cookie未在生产中设置
要在使用Identity时配置应用程序cookie,可以在Startup的ConfigureServices
使用ConfigureApplicationCookie
方法 :
// add identity services.AddIdentity(); // configure the application cookie services.ConfigureApplicationCookie(options => { options.Cookie.SameSite = SameSiteMode.None; });
由于Identity本质上是在AddCookie()
添加cookie身份validation,因此配置操作与配置cookie身份validation时通常传递给AddCookie()
操作相同。 只是因为AddIdentity()
负责为您设置身份validation,所以ConfigureApplicationCookie
提供了一种方法来调整cookie身份validation选项。
@poke的答案并没有帮助我将值设置为SameSiteMode.None
,至少在ASP.NET核心2.1中没有。
您在配置应用程序cookie中设置的任何值都会被cookie策略中间件的MinimumSameSitePolicy
设置覆盖。
这会阻止覆盖,将UseCookiePolicy
扩展的UseCookiePolicy
设置为SameSiteMode.None
。
app.UseCookiePolicy(new CookiePolicyOptions { MinimumSameSitePolicy = SameSiteMode.None });
然后在ConfigureServices
方法的AddCookie扩展中设置实际相同的站点值
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(options => { options => options.Cookie.SameSite = SameSiteMode.None; });