2012-08-15 111 views
3

我環顧四周,發現如何刪除客戶端瀏覽器上的cookie,使用cookie的過期或在瀏覽器退出時通過不提供過期來刪除它們。ASP.NET刪除會話/ Cookies

我需要在我的web應用程序中設置Cookie以在特定時間後刪除,但如果瀏覽器退出或崩潰。這可能嗎?

在此先感謝!

回答

4

這可能嗎?

不,這是不可能的。有2種類型的Cookie:

  1. 執着:一個expires給定日期=>這些Cookie存儲在客戶端瀏覽器上的文件和生存重新啓動瀏覽器屬性設置。將根據客戶端執行的每個請求發送它們,直到達到它們到期的日期爲止,或者直到服務器明確刪除它們。
  2. 會話cookie:一個沒有設置expires屬性。那些只存在於當前瀏覽器進程的內存中,但不會過期(直到瀏覽器關閉或直到服務器明確刪除它們)。

因此,對於您的場景,您可以通過在值中包含created at日期來使用會話cookie。然後在每次請求時在服務器上讀取此值並與當前日期進行比較。如果所需期限已過,則只需將cookie過期,以便在隨後的請求中不再發送該cookie。順便說一下,這種技術在ASP.NET中使用了Forms Authentication模塊。您可以在web.config中指定一個超時值,並決定是否要使用滑動過期,然後在每次請求時,服務器都會檢查是否達到超時,以便做出使cookie無效或更新的決定(如果滑動到期已啓用)。