由于最新版的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;
});