2009-10-27 156 views
0

只要ASP.Net會話超時,我們就需要將用戶重定向到會話超時頁面。我們通過AJAX調用獲取大部分內容,並且用戶永遠不會離開默認頁面。
有什麼辦法可以在客戶端(使用Javascript)檢測會話超時而不對服務器端代碼進行任何更改。我們可以檢查HTTP狀態碼嗎?
ASP.Net(MVC)在會話超時時設置了什麼狀態碼?

親切的問候,

+0

我希望這可以幫助。 http://stackoverflow.com/questions/1490879/detecting-session-expiry-on-asp-net-mvc – 2012-06-21 01:35:00

回答

0

默認情況下asp.net不返回特殊狀態代碼時,會話超時。您可以在服務器端檢測到這一點,並在會話超時時設置特定的狀態碼。當會話超時以通知客戶端代碼時,您還可以設置自定義標題或以特定方式撰寫內容。

1

您可以在服務器上設置一個等於會話超時參數的計時器。如果用戶處於活動狀態,則會話永遠不會超時,如果他關閉瀏覽器,它將自動結束。所以你唯一的情況是打開頁面,但用戶沒有做任何事情。在這種情況下,只要您持續發送一個jax請求(您可以在後臺執行此操作),或者設置一個指示不活動時間的計時器,就可以使會話保持活動狀態。

0

我得到了一些類似的情況,下面的代碼解決了我的問題。 //在主頁面: // 180是會話超時時間...。 函數SessionTimeOuts(){ self.setTimeout(「RedirectToLogin();」,'180'); }

function RedirectToLogin() { 
     window.location.href = '../login.aspx'; 
    } 

</script> 

在母版頁正文標籤使用的onload = 「SessionTimeOuts()」