You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core应用Set-Cookie被拦截 Domain属性无效问题排查求助

问题根因及修复方案

1. Cookie Domain属性配置格式错误

Cookie的Domain字段仅支持填写域名/IP,禁止携带协议头、端口号,你的两次配置均不符合规范:

  • 首次配置的"http://localhost:5006"携带了http://协议头,违反Domain属性的格式要求
  • 后续修改的"localhost:5006"携带了端口号5006,Domain本身不识别端口参数,浏览器匹配Cookie时会单独校验端口,无需写入Domain字段
    修复方式:本地localhost开发场景下,直接删除CookieOptions中的Domain配置即可,浏览器会自动匹配当前响应的源;也可显式配置为Domain = "localhost"。
// 修正后的Cookie配置示例
Response.Cookies.Append(id, "rememberDevice", new CookieOptions()
{
    Expires = DateTimeOffset.Now.AddMinutes(2),
    Path = "/",
    HttpOnly = true,
    IsEssential = true
    // 本地开发删除Domain配置,如需显式指定仅写Domain = "localhost"
});

2. 需同步校验后端CORS配置

前后端分离跨域场景下,仅前端配置withCredentials: true不足以让Cookie正常写入,.NET Core的CORS配置必须满足以下要求:

  • 不能使用AllowAnyOrigin()通配符,必须显式指定允许的前端访问源,例如WithOrigins("http://localhost:4200")(替换为你Angular应用实际的访问地址)
  • 必须添加AllowCredentials()配置,允许跨域请求携带凭证

内容的提问来源于stack exchange,提问作者Robbie Mills

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:06:04