google-chrome - Blazor Set-Cookie 无效
问题描述
我正在尝试在 Chrome 中运行的 Blazor WebAssembly 中设置 Cookie 身份验证。
WebApp 在 https://localhost:44342
上运行 WebApi 在 https://localhost:44377 上运行
在使用有效凭据向 https://localhost:44377/user/loginuser 发送发布请求(使用 PostAsJsonAsync)后,WebApi 会发送回带有 Set-Cookie: .AspNetCore.Cookies=... 的响应标头
该cookie似乎被浏览器拒绝,因为
- 我在 F12 -> 应用程序 -> Cookies 中看不到它
- 后续请求没有附加 cookie
我在网上广泛研究了这个问题。我发现了大量的提示和解释。包括配置 CORS、使用 IP 而不是 localhost、设置 cookie 属性(如 SameSite、HttpOnly、Expiration 和 Domain)或使用 chrome 内部结构进行进一步调查。
这些都没有帮助。Set-Cookie 仍然被浏览器忽略。
有人对我如何继续有一个好主意吗?谢谢
解决方案
我可能有同样的问题。Chrome 浏览器拒绝 cookie,因为该域未使用 SSL,并且 cookie 策略使用 samesite:none。
我在 IIS 中使用证书解决了问题(使用 HTTPS 而不是 HTTP)。我只在生产中遇到过这个问题。对于开发环境,当您创建项目时,Visual Studio 会询问您是否要注册开发证书。检查是。
推荐阅读
- typescript - 无法使用打字稿定义通用比较函数的类型
- pandas - 从数据框中查找索引
- wordpress - 闪烁背景 CSS 动画在 JSFiddle 中有效,但在 WordPress (Elementor) 页面上无效
- visual-studio-code - 什么会导致 git 在 vscode 中被禁用?
- reactjs - 'StackProps<"Detail">' 类型上不存在属性 'params'
- python - 如何从嵌套 json 获取熊猫数据框中的多索引列
- php - Laravel 如何使用另一台服务器作为文件存储
- javascript - How enable next checkbox if top checkbox is checked
- node.js - 跨项目重用公共项目资源
- css - HTML 而非 CSS 中的背景图像