我想知道是否有一種方法可以在web.config中配置應用程序,或者在某個地方處理會話超時。我想實現的是去一些控制器,並保存會話中的日期時間和一些其他值在變量之前設置爲空,因爲會話得到的超時處理會話變量超時
Q
處理會話變量超時
3
A
回答
0
我不確定它是否在MVC中相同但在葉奧爾德asp.net我有一個需要登錄的時候某人的會話超時的應用程序,我做到了在Global.asax.cs中文件中的Session_End中
if (Session == null || Session["logout-clicked"] != null) return;
TimeSpan ts = DateTime.Now - (DateTime)Session["session.start"];
new EventLog()
{
EventLogType = EventLogType.SessionTimedOut,
UserId = ((UserObject)Session["UserSession"]).Id,
DateStamp = DateTime.Now,
LogData = "logged in for: " + (Int32)ts.TotalHours + "hrs " + ts.Minutes + "mins",
CachedName = ((UserObject)Session["UserSession"]).Name
}.Save();
顯然你必須設置一些在你的登錄方法中,這些會話變量(如果你想要那種信息,比如總登錄時間/會話時間),你可能會有自己的方法來保存任何你需要保存的數據...但希望那一大堆t啓發一些想法?
我有一個「註銷點擊」會話變量(當你點擊註銷時設置),因爲當用戶點擊註銷時,它將有不同的日誌和Session_End調用Session.Abandon()後調用,所以我需要確保它沒有記錄註銷,然後是會話超時。
+0
Session_End有侷限性。首先也是最重要的,它只在使用InProc會話管理時才起作用。其次,根據您存儲的內容,您可能會根據關閉瀏覽器的用戶獲取不準確的數據。您將無法分辨在網站上超時的用戶與關閉瀏覽器窗口的用戶之間的區別。 http://stackoverflow.com/questions/1262867/session-end-code-on-browser-close – 2012-02-17 17:49:39
相關問題
- 1. 處理magento會話超時
- 2. 處理會話超時?
- 3. JSF,會話超時處理
- 4. 會話超時處理
- 5. Asp.net會話變量超時
- 6. 處理會話超時丟失數據
- 7. 客戶端處理會話超時
- 8. JSF會話超時&異常處理
- 9. Grails:處理HTTP會話超時事件
- 10. 自定義會話超時處理
- 11. 處理會話超時而回發
- 12. 在ASP.NET MVC中處理會話超時
- 13. CAS是如何處理會話超時
- 14. 客戶端處理會話超時
- 15. Spring 3.1:處理會話超時
- 16. 春季會話超時處理mvc
- 17. 在XrmServiceContext中處理會話超時
- 18. 會話變量超時概率
- 19. 會話變量處理不當
- 20. 處理程序更改會話變量?
- 21. 使用會話變量循環處理
- 22. PHP會話變量的錯誤處理?
- 23. 在通用http處理程序中處理會話超時
- 24. 處理器與IRequiresSessionState不會擴展會話超時
- 25. Firebase Analytics究竟如何處理會話持續時間/超時?
- 26. 會話超時
- 27. 會話超時
- 28. 會話超時
- 29. 會話超時
- 30. 會話超時
你有一個數據庫,你可以存儲這個會話狀態?每個用戶在創建這些狀態值之前是否進行身份驗證?我認爲你可以存儲這些值,這樣如果會話過期,你可以再次根據用戶信用查找它們。 – GrantVS 2012-02-16 22:59:13
yeap,實際上在我的數據庫中有一張表,用於存儲用戶登錄時的日期時間,但如果會話過期,我無法在應用程序設置爲null之前處理此時刻。 – Jorge 2012-02-16 23:01:00
您可以嘗試global.asax中的session_end嗎? – findcaiyzh 2012-02-16 23:05:19