2010-05-26 72 views
3

我正在開發一個aspnet應用程序,因爲我使用的是會話。如果用戶登錄到應用程序並單擊註銷,在這裏我正在關閉會話。如何在用戶關閉瀏覽器而不註銷時終止會話

假設用戶沒有點擊註銷並關閉瀏覽器。當用戶關閉瀏覽器而不註銷時如何終止會話

+0

Rippo,我提出的問題有什麼錯誤是否有錯誤? – kumar 2010-05-26 06:39:57

+0

問問題沒有錯,我向你致敬,但如果人們麻煩回答,至少接受一些答案是有道理的。它也有助於其他S.O.用戶找到常見問題的答案,畢竟這是一個社區驅動的網站! – Rippo 2010-05-26 06:45:49

+0

非常好,希望你得到一個好的答案,也許你可以重溫一些你的舊問題,並接受答案! :) – Rippo 2010-05-26 07:10:30

回答

1

您可以定義當Session在Global.asax.cs中過期時應該發生什麼。

protected void Session_End(Object sender, EventArgs e) 
{ 
    // Do stuff here... 
} 

編輯:Web服務器無法知道您已關閉Web瀏覽器。

+1

你不能保證這將***始終***工作作爲應用程序回收不會觸發此事件。另請注意,Session_End僅在InProc(進程內)模式下觸發。 – Rippo 2010-05-26 06:25:46

7

非常艱鉅的任務:

  • 非常smalll超時使用會話/你將有到期/

  • 採用隱藏式腳本/ iframe來ping主機/你將有連接/

  • 在窗口中處理onunload事件/可以被繞過/

代碼示例:

window.onunload = function() 
{  
    if((window.event.clientX<0) && (window.event.clientY<0)) { 

     window.open("logoff.aspx");     
    }  
} 
+0

+1我之前使用'window.onunload',但仍然發現一些問題,尤其是機器人,移動設備等。最後我改變了我的業務邏輯。 – Rippo 2010-05-26 06:28:42

3

沒有辦法,你的應用程序可以知道用戶關閉瀏覽器。會話將基於Session關閉。Timeout

如果用戶在超時期限內沒有刷新或請求頁面,則會話結束。

+0

,我們可以做。但是如何限制用戶關閉瀏覽器的時間? – kumar 2010-05-26 06:27:14

相關問題