2011-10-18 50 views
5

我使用JavaScript函數來存儲的cookie:C#Asp.net得到Cookie的到期時間在JavaScript中設置總是返回01.01.0001

createCookie("teaser", "teaser", 7); 
function createCookie(name, value, days) { 
var expires = ""; 
if (days) { 
    var date = new Date(); 
    date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); 
    expires = "; expires=" + date.toGMTString(); 
} 
document.cookie = name + "=" + value + expires + "; path=/"; 
return value; 
} 

當我檢查cookies在我的瀏覽器傳情的Cookie有效期正確設置: 25. oktober 2011 16:12:17

但是,當在C#中我去獲取該值,到期日期設置爲01.01.0001。

var cookie = Request.Cookies["teaser"]; 
    if (cookie != null && teaserList.Count() > 0) 
    { 

     cookie.Expires is 01.01.0001 

任何線索?

回答

7

Egghead says that:

瀏覽器負責管理Cookie和cookie的有效期 時間和日期幫助瀏覽器管理其餅乾店。 因此,儘管您可以讀取cookie的名稱和值,但您無法讀取cookie的到期日期和時間。當瀏覽器 向服務器發送cookie信息時,瀏覽器不包含 到期信息。 (Cookie的Expires屬性始終爲 會返回日期時間值爲零。)如果您擔心cookie的到期日期爲 ,則必須重置它。

1

瀏覽器不會將cookie的到期日期傳輸到服務器,這是按照HTTP規範。

瀏覽器只發送cookie名稱和值只有

過期cookie對象上屬性時設置有效期限上將是在響應寫入一個cookie僅用於,不在請求讀

讀取Cookie時,Expires屬性值始終爲空。你可以通過檢查HTTP頭來看到這一點。如果您確實想要讀取cookie的過期值,請嘗試將其寫入值中,或者使用另一個具有過期日期值的cookie(您需要保持它們自己同步)。

相關問題