2010-10-21 82 views
6

我有這個在我的webconfig文件顯示...如何實現會話超時頁面使用asp.net mvc的

<authentication mode="Forms"> 
     <forms loginUrl="~/Account/LogOn" timeout="2880" /> 
    </authentication> 

超時2880意味着它的多少秒或最低要採取?

如何顯示時,我的會話超時我需要顯示SessionTimeout.aspx網頁...

感謝

回答

4

您可以通過操作篩選器識別MVC中的會話超時。這裏是a question我問了這個問題。列出的時間在幾分鐘內。 (查看鏈接評論)

+1

根據MSDN,'timeout' *指定整數分鐘*的時間。 http://msdn.microsoft.com/en-us/library/1d3t3c61(v=VS.80).aspx – bzlm 2010-10-21 18:40:54

+0

@bzlm,謝謝澄清,我不久前停止使用會話超時。將更新答案。 – 2010-10-21 18:43:03

+1

值2880應該提示。爲什麼默認值是48分鐘? :) – bzlm 2010-10-21 18:51:32

-1

使JavaScript和當達到超時重定向用戶的計數器。

編輯:正如我理解你的問題,你想重定向到頁面時,用戶已經太長時間不活動是的?

+0

THanks Joakim,你可以請在代碼中解釋我,如果你有我完全新的這種事情,如何使用JavaScript實現計數? – kumar 2010-10-21 18:32:00

+0

在問題的示例中,會話超時爲2天。即使是一個非常酷的網頁,很長一段時間都不活躍。 :) – bzlm 2010-10-21 18:53:16

+0

我同意這是一個很長的超時,但問題是關於客戶端重定向在我眼中,而不是服務器重定向時,已達到登錄超時。 – Joakim 2010-10-21 19:18:38

1

正如Gabriel所說,使用FormsAuthentication時,超時將發生在幕後,這意味着如果用戶在時間到期後訪問頁面,系統會要求您再次登錄。

我會建議尋找添加slidingExpiration =「true」到您的web.config。

此外,您可能需要實施自動註銷,以便在達到超時後可能不會將敏感數據暴露出來。

我這樣做是通過調用window.setTimeout(myFunction,30000)每個頁面加載,如果用戶被認證。該函數使用JQuery ajax實現一個操作,該操作返回會話過期之前剩餘的時間量。一旦時間量低於零,您可以通過JavaScript重定向到註銷操作。否則,該方法只需再次調用window.setTimeout(myFunction,30000),以便繼續檢查。

您可以通過添加警告消息並允許用戶單擊使用JQuery ajax按鈕來啓動重置計時器的操作。