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; });