有沒有辦法做Session.Abandon()時,用戶只是用右上角的小紅色X框來殺死會話?我看到在「X out」之後,用戶重新進入並且似乎仍然存在會話變量的情況?我猜資源管理器讓它們保持完好? (我不確定這一點)。如果用戶X退出瀏覽器,如何放棄會話?
回答
你可以嘗試在OnUnload事件中做一個AJAX類型的回調 - 但是,正如別人提到你必須知道其他標籤被打開(不容易),並且它仍然不能保證你得到事件。
有一些事情要做,以獲得類似的效果類型的組合。
會話Cookie應該有一個空/空的到期時間。這可以確保瀏覽器關閉後瀏覽器從會話結束時刪除會話。
可以使用一個簡短的SessionState超時值來設置ASP會話。這意味着如果在此期間沒有客戶活動,則會話將過期。
這樣做的副作用是,如果用戶只是看網站,不執行活動(不論瀏覽器是否仍處於打開狀態) - 會話可能會過期。
這可以通過讓Javascript定時器定期通過AJAX調用或類似方式回到服務器來解決。這個副作用是它產生更多的網站流量。
服務器通常不知道客戶端上的這類事件。如果有任何請求被髮送回來,服務器可以通知的唯一方式就是通知服務器。我想你可以在JavaScript中創建這樣的通知,但是你還應該記住,會話記住會話不是每頁,而是(通常)每個用戶,這意味着你需要跟蹤用戶打開了多少個選項卡/窗口,以便在不應該的情況下不會中斷會話。我個人通常會嘗試設計Web應用程序,以便它們能夠很好地處理會話的默認處理,或者提供特定的「註銷」命令來終止會話,或者直接讓它超時並死掉。
如果我可以用jscript或jquery捕獲它,我可以使用隱藏按鈕單擊來通知服務器。不知道我怎麼會用jscript捕獲它。 – James 2009-09-27 06:45:44
我不是javascript大師,但我會研究'window.unload'事件。雖然可能會更好。 – 2009-09-27 06:48:47
- 1. 如何清除/放棄會話,如果用戶點擊瀏覽器在asp.net中的後退按鈕
- 2. PHP,會話和退出瀏覽器
- 3. 清除會話瀏覽器退出php
- 4. 在瀏覽器關閉asp.net的放棄會話。關閉會話cookie
- 5. 保持php會話在瀏覽器退出時不會失效
- 6. 退出瀏覽器調用
- 7. 如何在本地瀏覽器上存儲用戶會話?
- 8. 會話放棄
- 9. 如何才能使beforeunload事件僅在瀏覽器會話退出時觸發
- 10. 確認瀏覽器退出/瀏覽器退出技巧
- 11. 如何結束會話,如果用戶關閉瀏覽器(X)而不是註銷
- 12. 在Coldfusion中退出瀏覽器時終止會話變量
- 13. 如何防止閒置用戶的會話放棄(會話明智)
- 14. ASP.net會話如果他關閉瀏覽器會破壞
- 15. .NET會話 - 持續會話,即使用戶關閉瀏覽器
- 16. 如果會話失效,則禁用瀏覽器返回按鈕
- 17. 瓶的應用程序不會放棄從瀏覽器URL
- 18. PHP腳本不會在瀏覽器退出時退出
- 19. 放棄ASP.NET會話
- 20. 如何退出調試器而不退出IRB會話?
- 21. 如何使用jquery點擊瀏覽器的後退按鈕來銷燬會話
- 22. 如何從瀏覽器SSL/TLS會話導出主密鑰?
- 23. 刪除用戶會話從MySQL表,如果他們點擊關閉瀏覽器
- 24. 退出代碼運行,如果瀏覽器提示url
- 25. 如果用戶按R.id.home或後退按鈕,如何放棄PreferenceActivity中的更改?
- 26. JSF - 檢測用戶何時退出瀏覽器窗口
- 27. 如何檢查用戶何時通過會話過期退出
- 28. 如何禁用客戶機上的瀏覽器後退按鈕?
- 29. 如何在R中使用swirl退出瀏覽器()package usng R3.3.2
因此,您的頁面上有一個實際的X按鈕,它具有調用Session.Abandon()的單擊事件? 然後用戶回來並且會話變量存在? Global.asax中的Session_Start中有任何東西嗎? – 2009-09-27 06:39:04
我只在當用戶按下注銷鏈接時放棄會話。我希望能夠抓住X out事件。 – James 2009-09-27 06:43:39