具有多个Cookie的Set-Cookie标头

mna*_*mov 37 cookies web asp.net-web-api

我遇到了一个问题.

向响应添加多个Set-Cookie标头时

headers.Add("Set-Cookie", "a=b;Path=/;");
headers.Add("Set-Cookie", "c=d;Path=/;");
Run Code Online (Sandbox Code Playgroud)

实际上它们是组合在一起的,只有一个标题以逗号分隔的cookie发送

Set-Cookie: a=b;Path=/;,c=d;Path=/;
Run Code Online (Sandbox Code Playgroud)

根据RFC2109,它是一种有效的语法.但它不符合RFC6265,它弃用了RFC2109

此外,最新的浏览器也不支持这种以逗号分隔的语法.在IE9,Firefox 13谷歌Chrome 20上测试过.

所有这些浏览器都只使用了第一个cookie.

请参阅下面的示例项目

https://github.com/mnaoumov/cookie-bug/

我想找一些解决方法.

我希望有两个不同的Set-Cookie标头.

我试着写一些MessageInspector来重写HTTP头.我找不到如何访问标头.

有任何想法吗?

PS二手技术:Web API

mna*_*mov 9

根据codeplex上的回答(http://aspnetwebstack.codeplex.com/workitem/288)这个问题是已知问题并且与WCF自托管有关,应该通过迁移到IIS托管来修复.

这是WCF 4问题,标记为无法修复.

发现另一个问题具有相同的结果WCF 4.0 Cookie Only First由浏览器记录.