1

我正在尝试在 Chrome 中运行的 Blazor WebAssembly 中设置 Cookie 身份验证。

WebApp 在 https://localhost:44342
上运行 WebApi 在 https://localhost:44377 上运行

在使用有效凭据向 https://localhost:44377/user/loginuser 发送发布请求(使用 PostAsJsonAsync)后,WebApi 会发送回带有 Set-Cookie: .AspNetCore.Cookies=... 的响应标头

该cookie似乎被浏览器拒绝,因为

  1. 我在 F12 -> 应用程序 -> Cookies 中看不到它
  2. 后续请求没有附加 cookie

我在网上广泛研究了这个问题。我发现了大量的提示和解释。包括配置 CORS、使用 IP 而不是 localhost、设置 cookie 属性(如 SameSite、HttpOnly、Expiration 和 Domain)或使用 chrome 内部结构进行进一步调查。

这些都没有帮助。Set-Cookie 仍然被浏览器忽略。

有人对我如何继续有一个好主意吗?谢谢

4

1 回答 1

1

我可能有同样的问题。Chrome 浏览器拒绝 cookie,因为该域未使用 SSL,并且 cookie 策略使用 samesite:none。

我在 IIS 中使用证书解决了问题(使用 HTTPS 而不是 HTTP)。我只在生产中遇到过这个问题。对于开发环境,当您创建项目时,Visual Studio 会询问您是否要注册开发证书。检查是。

于 2021-07-11T23:45:06.340 回答