当 SameSite 设置为 none 时,ASP.NET Core 不会创建身份验证 cookie

问题描述 投票:0回答:1

经过一番研究,我想测试跨域身份验证,似乎

SameSite
身份验证cookie应设置为无,如下所示:

options.Cookie.SameSite = SameSiteMode.None;

问题是,当我将

SameSite
设置为 none 时,应用程序无法创建身份验证 cookie,但如果将其设置为 Lax 或 strict 则可以正常工作。

这是我的代码

program.cs

builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =>
           {
               options.Cookie.Name = "authen";
               options.Cookie.HttpOnly = true;
               options.Cookie.SecurePolicy = CookieSecurePolicy.None;
               options.Cookie.SameSite = SameSiteMode.None;
               options.Cookie.Path = "/";
               options.Cookie.Domain = "localhost";
           });

更新

经过一些测试,似乎这只发生在 Google Chrome 中,并且在 Firefox 上运行良好。

asp.net-core authentication cookies asp.net-core-mvc
1个回答
0
投票

将此行代码更改为

options.Cookie.SecurePolicy = CookieSecurePolicy.None;

options.Cookie.SecurePolicy = CookieSecurePolicy.Always;

并且有效。

© www.soinside.com 2019 - 2024. All rights reserved.