由于最新版的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;
});
版权声明:本文为CameronAnderson原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。