由于最新版的Chrome的Cookie策略导致写Cookie失败,从而导致用户认证的失败.SameSite=strict:对于来自不同于源站的站点发出的请求,不发送cookie,为了防止CSRF攻击。SameSite=lax:类似于strict,但是当用户有意地通过单击链接或发送表单启动请求时,就会发送cookies。不会在脚本请求时发送。SameSite=none:无论请求来自哪里都可以(但是需要https)。
解决方案
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
//修改浏览器cookie策略为LAX
options.MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax;
});
本文探讨了Chrome浏览器最新版的Cookie策略,该策略更改导致写Cookie失败和用户认证失败。SameSite属性的设置变得更为严格,包括SameSite=strict和SameSite=lax,以及需要HTTPS的SameSite=none。为了解决这个问题,提出了通过配置CookiePolicyOptions,将MinimumSameSitePolicy设置为Lax或None的方法,以确保在不同场景下正确发送Cookie。
10万+






