我遇到了一个问题。
当您向响应添加多个 Set-Cookie header 时
headers.Add("Set-Cookie", "a=b;Path=/;");
headers.Add("Set-Cookie", "c=d;Path=/;");
实际上它们是组合在一起的,并且只发送一个带有逗号分隔 cookie 的 header
Set-Cookie: a=b;Path=/;,c=d;Path=/;
根据RFC2109这是一个有效的语法。 但这并不是根据RFC6265 ,弃用了 RFC2109
此外,最新的浏览器也不支持这种逗号分隔的语法。在 IE9、Firefox 13 和 Google Chrome 20 上进行了测试。
所有这些浏览器仅获取第一个 cookie。
请参阅下面的示例项目
https://github.com/mnaoumov/cookie-bug/
我想找到一些解决方法。
我希望有两个不同的 Set-Cookie header 。
我尝试编写一些MessageInspector来重写HTTP header 。我找不到如何访问该 header 。
有什么想法吗?
附注使用的技术:Web API
最佳答案
根据 codeplex ( http://aspnetwebstack.codeplex.com/workitem/288 ) 上的回答,此问题是已知问题,与 WCF 自托管相关,应通过迁移到 IIS 托管来修复。
这是 WCF 4 问题,标记为无法修复。
发现另一个具有相同结果的问题 WCF 4.0 Cookie Only First is Recorded by Browser .
关于web - 在 ASP.NET Web 中添加多个 Set-Cookie header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533867/