Chrome 正在为 sameSite=none 和 Secure = CookieSecurePolicy.Always 在私有模式下阻止 cookie

Chrome is blocking cookies in private mode for sameSite=none and Secure = CookieSecurePolicy.Always

我正在使用身份服务器 4,并且我已将 cookiePolicy 设置为:

在startup.cs

var cookiePolicyOptions = new CookiePolicyOptions
        {
            MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.None,
            HttpOnly = Microsoft.AspNetCore.CookiePolicy.HttpOnlyPolicy.None,
            Secure = CookieSecurePolicy.Always,
            
        };

下一个:

app.UseCookiePolicy(cookiePolicyOptions);

我也反应应用授权ID4中的用户。 我正在使用隐式流。当用户处于正常模式时,一切正常。

但是当用户使用私人模式时,登录 window 不会出现。 sign in window

当在 Google Chrome 设置中,阻止三十部分 cookies 设置为允许在私有模式下,那么一切都正常。

如果应用程序在没有 https 的本地主机上 运行,则两种模式都可以。 当应用程序位于具有 Https 证书的服务器上时,问题就开始了。

查了很多资料还是不知道能不能在授权的时候设置隐私模式的cookie?

如果我应该提供更多信息,请告诉我 ;)

我的问题是我设置了 sameSite=none

这意味着我的 IdentityServer 与我的 Web 客户端的域名不同。

我已更改为 sameSite=Lax -这意味着 Identity 和 WebClient 具有相同的域名- 但我还需要更改我的 IIS 绑定到相同的域名端口上 Identity Server 的域名:8443 站点和 Web 客户端站点。 (之前两个域名是不同的)

在这种情况下,chrome 不会将 cookie 作为 30 部分 cookie 进行阻止,并且还允许在隐身模式下在浏览器中设置 idsrv.external cookie。