2012-01-20 63 views
2

我通過將Expires屬性設置爲過去的日期而過期了一個cookie,我可以在Fiddler中看到它的工作。但是,ASP.NET瀏覽器即使過期也不刪除cookie

  1. 我沒有看到在Firefox cookie窗口中更新的更改。我嘗試關閉cookie和Firefox窗口,但沒有運氣。
  2. 當我做另一個請求到同一個頁面(同一域),這些Cookie再來

現在我知道它是由瀏覽器刪除Cookie它喜歡的時候,但我認爲它會在用戶再次訪問同一網站之前。

如何確保瀏覽器在下次請求從該用戶進入之前將其刪除?

回答

2

爲了成功地刪除Cookie,你不僅需要設置在過去的Expires日期,你還需要指定你當你第一次設置Cookie使用相同的pathdomain性能。這些屬性不會隨每個請求一起發送到服務器,因此您必須以其他方式跟蹤它們。

原因是您可以擁有兩個具有相同名稱的Cookie,但具有不同的pathdomain屬性,因此瀏覽器需要知道要刪除哪一個的所有詳細信息。

0

當你設置一個cookie的Expires屬性時,你基本上是設置一個持久cookie。這意味着這個cookie不再存儲在瀏覽器的內存中,而是保存在客戶端計算機上,它將在瀏覽器中保持運行,甚至在計算機重新啓動之前,直到達到指定的日期。如果您未設置Expires媒體資源,則會創建一個非持久性Cookie,該cookie只有在用戶關閉瀏覽器之後纔有效(當前標籤將與Cookie值相關,如果用戶打開新標籤並訪問您的網站再次發送,cookie將重新發送,但您無法對此做任何處理)。在HTTP協議規範中沒有每個標籤/窗口的cookie的概念,這顯然是正常的,因爲在本說明書中沒有瀏覽器標籤窗口的概念。

要了解關於cookie的更多信息,請查看following article,其中涵蓋了不同的類型。

相關問題