2013-04-11 34 views
2

在我的應用程序中,我們希望在用戶關閉窗口或會話超時時將某些活動和消息記錄到數據庫。有沒有測試過的代碼可以做到這一點?在Global.asax.cs的Session_End方法中編寫代碼是否正確?如何在會話超時或窗口關閉時記錄活動

+0

注意這裏是當用戶關閉瀏覽器來運行代碼沒有可靠的方法 - 這是一個經常被討論的問題。有'onbeforeunload',但由於多種原因(例如,如果瀏覽器崩潰或頁面上存在JavaScript錯誤/禁用它不會觸發),這會造成問題。 – mellamokb

+0

關閉窗口並不總是會結束您的會話。 –

+0

我同意mellamokb,如果javascript被禁用,那麼真的沒有辦法做到這一點。 –

回答

0

您可能可以爲會話做這樣的事情(請注意,沒有保證的方式來檢查瀏覽器關閉)。如果您在會話中使用inProc,則此方法僅適用。

在你的global.asax.cs

protected void Session_Start(object sender, EventArgs e) 
{ 
    //a value must be present to call Session_End so we pre-seed it 
    Session["SeededValueToEnableSession_End"] = true; 
} 

protected void Session_End(object sender, EventArgs e) 
{ 
    //handle session ending 
} 
+0

感謝TravisJ..我該如何使用Session [「SeededValueToEnableSession_End」]? – Feroz

相關問題