【发布时间】:2019-10-13 10:25:36
【问题描述】:
我的 API 有身份验证端点 A,它应该返回一个身份验证 cookie。端点 B 需要身份验证 cookie。访问端点 A 后,我的开发机器和单独的测试客户端机器在 Chrome 中访问端点 B(在实时 VM 上,不涉及 localhost)时始终成功验证。我可以在对端点 B 的请求中看到 cookie 标头。
同时,当从托管 VM 本身访问活动端点 B 时,身份验证似乎成功,但 Chrome 在尝试访问端点 B 时被重定向。日志记录表明身份验证 cookie 未在请求中发送到端点 B。
在使用 Postman 时,我的开发机器和 VM 都会收到 set-cookie 标头作为响应(我必须在两台机器上禁用 SSL 验证才能正常工作)。
cookie 看起来像这样,虽然我也尝试过没有域、安全和同站点策略(增量):
cName=cValue; expires=Tue, 11 Jun 2019 02:21:06 GMT; domain=.mydomain.net; path=/; secure; samesite=lax
问题:什么会阻止 VM 上的 Chrome 发送 cookie?我已经尝试调整 cookie 的属性以防万一。
上下文:
- asp.net核心版本:2.2
- Cookie.httpOnly: false
- Cookie.SameSite:我尝试过 None 和 Lax,因为 cookie 是从 chrome 扩展程序请求的。
- Cookie.Secure:真假我都试过了。
- Cookie.Domain:我尝试了多个值,但没有设置。
- CORS 已使用且完全打开。
- 我已为该站点安装了受信任的 SSL 证书。
【问题讨论】:
标签: authentication asp.net-core cookies cors