web - 在 ASP.NET Web 中添加多个 Set-Cookie header

标签 web asp.net-web-api cookies

我遇到了一个问题。

当您向响应添加多个 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

此外,最新的浏览器也不支持这种逗号分隔的语法。在 IE9Firefox 13Google 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/

相关文章:

asp.net - 在 F# 中,如何判断对象是否为 Async<_>,以及如何将其转换为 Async<_>?

javascript - 5 分钟不活动后 Web API 的响应时间较长

javascript - 互联网广告商和第三方 Cookie - 澄清一下?

cookies - 将 Electron 与 Google Analytics 嵌入 API 一起使用

html - CSS 网站在发布后更改 div 大小

java - 是否可以屏蔽/隐藏冗长的 URL 并仅显示域名?

asp.net-mvc-4 - 使用 Ninject.Extensions.Conventions 在 MVC4 WebApi 中自动绑定(bind)

java - 如何使用 App Engine url 获取服务像网络浏览器一样处理 cookie?

html - 网页 : Multiple scroll areas with variable height

php - 如何使用 PHP 单击 DOM 元素并将其作为变量传递?