2012-05-30 83 views
1

我正在嘗試創建一個持久性cookie。這裏是代碼:使用System.Windows.Application.SetCookie創建持久性cookie失敗?

string expires = string.Format("{0} GMT", DateTime.Now.AddHours(1).ToString("ddd, dd-MMM-yyyy HH:mm:ss")); 
string newCookie = string.Format("Cookie1=ValueToStore; expires={0}", expires); 

Uri location = new Uri("http://www.mysite.com/Application"); 

System.Windows.Application.SetCookie(location, newCookie); 
string theSetCookie = System.Windows.Application.GetCookie(location); 

字符串theSetCookie應該包含cookie中的所有數據,不是?但它只包含Cookie1=ValueToStore;。我錯過了什麼?爲什麼沒有到期日,並將其作爲持久性cookie?

注:我使用的Internet Explorer 9在Windows 7

+0

http://msdn.microsoft.com/en-us/library/system.windows.application.setcookie.aspx – makim

回答

2

到期時間戳不是cookie值的一部分。當您設置cookie時,將其與一些給定的參數(Expires)一起設置,但是當您閱讀它時,您只能讀取該值。

cookie過期不應該開車在你的應用程序的任何邏輯:

  • 如果它不再有效,因爲在一定的時間已經過去了,那麼應當在期滿
  • 如果cookie應該反映進行有更長的到期,可以在不存在過期的知識來設置
  • 如果你想刪除過期(使會話cookie),你可以不到期重新設定其設置

這些方案都不需要知道到期時間戳。