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。
我正在使用身份服务器 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。