我正在研究ASP.NET應用程序,但我很難理解爲什麼cookie看起來爲空。Cookie在某些ASP.NET頁面上爲NULL(即使它存在!)
在一個頁面(results.aspx)上,我創建了一個cookie,每次用戶單擊一個複選框時添加條目。當用戶點擊一個按鈕時,它們被帶到另一個頁面(graph.aspx),在那裏讀取該cookie的內容。
問題是,cookie似乎不存在graph.aspx上。以下代碼返回空值:
Request.Cookies["MyCookie"];
奇怪的是這只是我們登臺服務器上的一個問題。這個應用程序被部署到生產服務器,並沒有問題。它在當地也很完美。
我已經把調試代碼的兩個頁面上:
StringBuilder sb = new StringBuilder();
foreach (string cookie in Request.Cookies.AllKeys)
{
sb.Append(cookie.ToString() + "<br />");
}
this.divDebugOutput.InnerHtml = sb.ToString();
在results.aspx(其中不存在任何問題),我可以看到餅乾是:
的myCookie __utma __utmb __utmz _csoot _csuid ASP.NET_SessionId __utmc
在graph.aspx,你可以看到有沒有 '的myCookie'
__utma __utmb __utmz _csoot _csuid ASP.NET_SessionId __utmc
雖這麼說,如果我走看看我的FireCookie,我可以看到,實際上在兩個頁面上都存在相同的cookie! WTF?!?!?!?! (好吧,咆哮:-))
有沒有人見過這樣的事情?爲什麼ASP.NET會聲稱一個cookie在一頁上爲空,而在另一頁上不爲空?
您使用的是哪種瀏覽器?您是否在多個瀏覽器上嘗試過這種瀏覽器,結果相同? – Nick 2010-01-20 15:07:41
Firefox和IE 8(還有6個)。兩者都是一樣的。 – DaveDev 2010-01-20 15:50:17