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