【发布时间】:2022-01-27 18:20:57
【问题描述】:
我正在使用身份服务器 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 中的用户。 我正在使用隐式流。当用户处于正常模式时,一切正常。
但是当用户使用私人模式时,登录窗口不会出现。 sign in window
在谷歌浏览器设置中,阻止三十部分 cookie 设置为允许在私人模式下,然后一切正常。
如果应用程序在没有 https 的 localhost 上运行,两种模式都可以。 当应用程序在具有 Https 证书的服务器上时,问题就开始了。
查了很多资料,但还是不知道能不能在授权时允许在私密模式下设置cookies?
如果我应该提供更多信息,请告诉我;)
【问题讨论】:
-
我自己只是在处理这个问题(我认为是这个问题)。 ..但是使用PHP。您需要在 cookie 本身上设置
secure和samesite属性 - 至少这对我来说是固定的。 -
@ControlAltDel 嗯 .. 我认为 cookie 策略正在设置安全属性和sameSite = none,sameSite 应该设置为其他值吗?您是在身份服务器中设置此属性还是我应该在我的客户端中以某种方式设置此属性?
-
这是我在 PHP 中所做的: setcookie("foo", $_POST["foo"], [ "expires" => time() + 60 * 60 * 24, "path" => "/", "domain" => "", "secure" => true, "httponly" => false, "samesite" => 'None' ]);
标签: javascript google-chrome identityserver4 asp.net-core-3.1