2
我似乎对很多人都有相反的问题。许多问题都考虑了为什么他们的cookies丢失了HttpOnly
设置。我正在努力弄清楚为什么我一直在四处闲逛。如何清除Cookie上的HttpOnly标志?
我正在编写使用ServiceStack
的代理服务,以允许jQuery ajax调用与未实现JSONP或CORS(不必担心,这实际上是一个合法项目)的服务器跨域进行工作。当收到包含cookie的响应,我碰到它复制到Response对象,如下所示:
局cookie:
Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/
正如你所看到的,没有任何的HttpOnly标志。然后我复制cookie如下:
var cookies = client.CookieContainer.GetCookies(new Uri(apiUrl));
foreach (Cookie cookie in cookies)
{
cookie.HttpOnly = false;
cookie.Domain = "";
Response.Cookies.AddCookie(cookie);
}
然后返回响应。所有数据来自通过正确的,但由于cookie的结束:
Set-Cookie: MYAPI=8579...05B1; expires=Thu, 10-Apr-2014 13:08:18 GMT; path=/; HttpOnly
我已经把我的web.config中有以下内容:
<httpCookies httpOnlyCookies="false"/>
任何想法,为什么HttpOnly
标志被设置,以及如何解决它?我确实在某个地方默认ServiceStack
设置了HttpOnly
,但是看不到如何取消设置。
此外,根据https://github.com/stabbylambda/ServiceStack/commit/2fe1fefa338d3aac7aed6d7161dc0e2191dd52dd,ServiceStack看起来像它只设置为仅使用HttpOnly cookie。我理解默认情况下设置HttpOnly的愿望,但这不会最终由开发人员决定吗? – 2013-04-10 13:28:46