2011-02-02 60 views
2

我想跟蹤用戶是否失去或會話過期。我現在需要確切地在他們的會話過期時(在+/- 5分鐘內)。現在,如果用戶在瀏覽器中打開頁面並在一天之後返回,我會知道它在一天之後嘗試做某事時會過期 - 但實際上,在一小時不活動之後會話過期。如何檢測會話在asp.net中到期的時間?

我想在服務器上每5分鐘運行一次腳本,並檢查哪些會話已過期並檢測它們,然後在數據庫中記錄過期時間。 如何在服務器上以如此短的時間間隔連續運行腳本? 劇本究竟做了什麼? 有沒有更好的方法來做到這一點?

+0

爲什麼要這麼做? – Lazarus 2011-02-02 13:47:13

回答

10

在您的global.asax中,您可以捕獲Session_End事件。你之前

注意,一個五分鐘的超時是不容易實現,因爲你必須等待會話過期(=通常是20分鐘):看到這個問題的更多細節可以檢測不活動。因此,如果您真的需要短時間間隔,您需要

在另一方面,你還需要

  • 確保以開放的瀏覽器活動五分鐘不會導致會話被拋棄(除非你想你的用戶丟失其會話當他們離開電腦拿一杯咖啡時)。這種「自動保持活動」可以通過例如using JavaScript來實現。
+0

+1:比我的回答好得多;) – Lazarus 2011-02-02 13:49:56