SameSite
Strict
最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。Lax
规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。- None Chrome 计划将
Lax
变为默认设置。这时,网站可以选择显式关闭SameSite
属性,将其设为None
。不过,前提是必须同时设置Secure
属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
系统在默认的情况下采用的是Strict 最严格模式,那么需要修改成为Lax ,如果系统是HTTPS 访问,那么将不用这些配置,建议部署的时候尽量采用HTTPS部署。
public IServiceProvider ConfigureServices(IServiceCollection services) { //配置Cookie策略,不然部分Google 浏览器将无法登录系统 services.Configure<CookiePolicyOptions>(options => { options.MinimumSameSitePolicy = SameSiteMode.Lax; }); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory) { //解决IdentityServer4 的Chrome浏览器里无法登录中交互Cookie的问题 app.UseCookiePolicy(); }