我想弄清楚如何摧毀一個ASP.NET會話時,用戶導航離我的site.I使用Global.ascx應用程序文件並使用session_end事件。點擊註銷按鈕。但是,當我直接關閉瀏覽器20分鐘後不使用全局文件。我在web.conig文件作爲<sessionState mode="InProc" timeout="20"></sessionState>
請幫我
奧古斯丁會話處理在asp.net
回答
會話超時定義當一些會議將一些閒置的時間後銷燬終止會話。
如果您想要更好地控制會話,您需要使用SQLServer模式,狀態服務器模式或自己定製的模式。
我的意思是,因爲,例如,SQLServer模式將會話存儲在標準SQL Server表中,因此,您可以實現一些SQL Server作業,或者在Windows或某些Windows服務中安排某些任務,以便可以清理根據您的需要開啓會議。
順便說一句,也許你需要知道,如果你使用InProc,你的會話可能會被破壞,因爲IIS回收應用程序池或服務器完全重新啓動。這不是結束會話,所以適用的事件和處理程序在這種情況下不起作用。
我再說一遍,如果您需要更好的會話管理模式,就像我建議您的那樣。
編輯:
查看本頁面: http://aspalliance.com/520_Detecting_ASPNET_Session_Timeouts.2
您將學習如何處理會話超時更好,因爲當會話過期Session_End中不叫,但是當你調用「 Session.Abandon」。
您可以通過調用Session.Abandon()
我使用Session.abandon和明確的(),但是,我的問題是,如果我們關閉瀏覽器它不工作... – augustine 2011-03-28 07:36:36
當訪問者「導航」或「關閉瀏覽器」時,瀏覽器不會向網站發送信號。所以asp.net(或任何其他服務器端技術)不能對此做出反應以銷燬會話。
這就是爲什麼會話在超時時間內工作的原因:如果用戶在超時時間內沒有執行請求,那麼他應該已經放棄了會話,即使他剛剛閱讀該頁面超過20分鐘。
使用RegisterClientScriptBlock創建一個調用頁面加載session.End並關閉頁面(Window.Close())的新頁面。在使用Javascript卸載當前頁面時調用此新頁面window.Location。
可以使用INPROC模式的SQLServer模式instread
- 1. 在ASP.NET C中處理會話#
- 2. 在asp.net處理程序訪問會話
- 3. 在ASP.NET MVC中處理會話超時
- 4. 如何在asp.net中處理會話mvc
- 5. ASP.Net如何處理會話管理?
- 6. 處理會話
- 7. 處理會話
- 8. 處理會話
- 9. 使用RavenDB和ASP.NET MVC處理會話
- 10. ASP.NET MVC RC2 - 會話處理錯誤?
- 11. ASP.NET通用處理程序和會話
- 12. 在mvc3中處理會話
- 13. PHP會話處理
- 14. 處理PHP會話
- 15. Angular4會話處理
- 16. php會話處理
- 17. Tomcat會話處理
- 18. Ksoap2 - 會話處理
- 19. PHP - 默認會話處理與自定義會話處理
- 20. Python多處理處理會話
- 21. Asp.Net Sql Server會話管理
- 22. asp.net Nhibernate會話管理
- 23. asp.net Nhibernate會話管理
- 24. ASP.NET會話ID管理
- 25. ASP.NET中的會話管理
- 26. ASP.NET處理外部服務器會話 - 清理
- 27. ASP.Net MVC 3:在哪裏處理會話丟失?
- 28. 在ASP.NET中如何處理會話和多個選項卡?
- 29. 如何處理會話超時在asp.net 3.5
- 30. ASP.Net - 在負載平衡環境中處理會話數據?
+1:一個非常好的教程馬蒂亞斯。 – Kamyar 2011-03-28 08:00:57
謝謝。但我沒有編寫這個教程! :D – 2011-03-28 08:03:45
我知道。但感謝分享:) – Kamyar 2011-03-28 08:05:17