2011-01-26 117 views
1

/獲取值我有以下邏輯非常簡單的頁面:無法設置cookie的從

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (null == Response.Cookies["UserSettings"].Value) 
    { 
     HttpCookie cookie = new HttpCookie("UserSettings"); 
     cookie.Value = "The Big C"; 
     cookie.Expires = DateTime.Now.AddDays(10); 
     Response.Cookies.Add(cookie); 
    } 
    else 
    { 
     // got here 
    } 
} 

我在兩個ifelse設置斷點和else斷點從來沒有被擊中。每一次都會觸發if聲明。這裏有什麼可能是錯的?

謝謝!

+2

中檢查它Request.Cookies和Response.Cookies都具有相同的值嗎?我認爲他們可以,但可以仔細檢查一下Request.Cookies是否可以給你返回cookie? – 2011-01-26 18:55:53

+0

請求給出正確的值(The Big C)。我應該使用Request而不是Response來閱讀cookie嗎? – 2011-01-26 19:01:02

回答

5

你爲什麼要檢查Response.Cookies你應該檢查Request.Cookies。響應仍在創建..

更新

看,當你使用HttpResponse.Cookies收集Cookie添加,餅乾立即是HttpRequest.Cookies收集提供 ,即使響應尚未發送給客戶端。 但是即使在添加之前,您也正在檢查Collection 中的Cookie。所以Yu需要在Request.Cookie Collection