Blazor Set-Cookie 无效

问题描述

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

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

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

那个cookie似乎被浏览器拒绝了,因为

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

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

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

有没有人知道我该如何继续?谢谢

解决方法

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

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