2010-02-16 67 views
0

我正在創建一個內容管理系統,但有一個問題。我想在我的網站上做的事情是,當用戶打開網站時,爲該用戶創建一個新的sessionid,並且當用戶關閉網站時,sessionid被清除。我怎麼能做到這一點?ASP.NET中的會話狀態失效

回答

2

當用戶關閉您的網站或離開您的網站時,沒有辦法檢測到。經過一段時間不活動(默認20分鐘)後,用戶的會話對象將過期並自動清除。我建議您查看Session上的MSDN article,這將覆蓋您調整應用程序會話的選項。

如果在另一方面,你正在尋找當用戶的會話開始或到期(由於不活動)執行自定義邏輯,你可以在Global.asax文件添加到您的應用程序並使用Session_StartSession_End方法是。

0

獨立於Asp.net工作的簡單解決方案是在會話數據上放置時間戳並定期刪除過期條目。

2

這基本上是ASP.NET中會話的默認行爲。

當用戶關閉瀏覽器時,保留會話ID的非持久性cookie將被丟棄。這實際上並不會使會話過期,但由於不再存在對該會話的引用,它將在默認的20分鐘內自動失效。用戶在關閉瀏覽器窗口後重新訪問您的網站將不得不使用新的會話。 (Source

+0

感謝的朋友 – mayur

+0

@mayur:如果您發現其中一個答案有幫助,您可能希望點擊答案旁邊的綠色勾號將其標記爲已接受。如果您在Stack Overflow上提出更多問題,這將有助於您在將來獲得更多答案。 –