2011-12-27 66 views
1

我有兩個問題。Set-Cookie與Response.Cookies和重複密鑰

問題1:HttpWebResponse.Cookies和WebResponse.Headers [「Set-Cookie」]有什麼區別? 「WebResponse.Headers [」Set-Cookies「]」無效http cookie嗎?

問題2:如何從HttpWebResponse中獲取具有相同名稱的重複標頭的值?

這是從Fiddle複製的原始響應。正如你所看到的,有兩個名稱相同的頭文件「Set-Cookie」。我總是得到HttpWebResponse中的第一個。 Google分析中的「__utms」Cookie?

HTTP/1.1 200 OK 
Date: Tue, 27 Dec 2011 09:47:53 GMT 
Chunk: 10210620 
Set-Cookie: ASP.NET_SessionId=34ft0d45uboqv245bev2nwrj; path=/; HttpOnly 
Set-Cookie: __utms=A51743627D9238C3997BABD76D7D75; domain=ibc88.com; expires=Wed, 28-Dec-2011 09:47:53 GMT; path=/ 
Content-Type: text/html; charset=utf-8 
Cache-Control: private, no-store 
Content-Length: 2543 

回答

2

你注意到在ASP.NET_SessionId cookie中的HttpOnly標誌?這個標誌基本上表明這個cookie不能被客戶讀取。您使用WebRequest或WebClient或其他方式發送客戶端請求,但您將永遠無法讀取此cookie值。只有服務器可以讀取它。客戶端將在隨後的請求中存儲和發送它,但您永遠無法讀取其值。

傑夫還blogged about HttpOnly

+0

感謝您的解釋和鏈接!如何閱讀重複的頭文件? – 2011-12-28 03:55:28

+0

@MichaelSync,你想閱讀哪些重複的頭文件? '設置Cookie'?響應中的Cookies屬性將使您可以訪問那些未用HttpOnly標誌標記的cookie值。 – 2011-12-28 08:40:23