Mi-*_*ter 3 google-chrome razor asp.net-core
我有一个奇怪的问题,我们正在运行一个 asp.net core razor 应用程序。登录 Firefox 或 Edge 没有问题。
但随机地,我们在 Chrome 中有一个我们无法弄清楚的问题。
(随机,以前在用户的机器上随机发生过,现在在很多机器上都发生了,但仍然不是全部)
问题是我们的“身份验证令牌”cookie 似乎没有被设置。
对我来说,错误似乎是在用户名和密码成功之后但在重定向之前运行的这一行。
...
Response.Cookies.Append("auth-token", inToken, option);
...
Run Code Online (Sandbox Code Playgroud)
没有错误,但是在跌倒后几乎立即运行的一条线
public async Task Invoke(HttpContext context)
{
var name = "auth-token";
var cookie = context.Request.Cookies[name]; //THIS LINE DOESN'T HAVE THE COOKIE CALLED "auth-token" IN CHROME
...
}
Run Code Online (Sandbox Code Playgroud)
我们已经尝试过:
隐身 Chrome/清除缓存/Chrome 中的 Cookie
似乎没有明确的原因何时发生此问题。
我很想弄清楚为什么会发生这种情况,或者如果可能的话,我想知道有关如何捕捉正在发生的事情的任何信息。
谢谢!
经过几个小时的研究,我似乎终于解决了我的问题。
通过在我们的 cookie 中设置以下内容
SameSite = SameSiteMode.Lax
Run Code Online (Sandbox Code Playgroud)
或者
SameSite = SameSiteMode.Strict
Run Code Online (Sandbox Code Playgroud)
我们的 Chrome 问题已修复
我正在阅读谷歌浏览器的“SameSite”cookie 选项。
https://www.chromium.org/updates/same-site
最初我认为这无关,因为 SameSite 已经在 Chrome 中被强制使用了很长时间,而且它从来没有打扰过我们的代码。但我仍然尝试设置:
SameSite = SameSiteMode.None
Run Code Online (Sandbox Code Playgroud)
无变化
在向我的老板提出这个问题后,他告诉我他注意到一个旧警告出现在 chrome 控制台中 <1 秒。
'与资源关联的 cookie 设置为 'SameSite=None' 但没有 'Secure'。已经被屏蔽了……”
(注意:这是在我完全尝试使用 SameSite 选项之前,并且是修复 Safari 错误的一些代码的一部分)
所以很自然地,我们设法通过快速屏幕截图捕获了错误,然后我们在 SameSite 选项中添加了 Strict。
所以我虽然现在对我有用,但它仍然没有解释;
归档时间: |
|
查看次数: |
1804 次 |
最近记录: |