2011-04-25 157 views
6

如何爲asp.net mvc應用程序實現會話超時功能?我希望用戶在指定時間段內檢測到非活動狀態時自動註銷。asp.net mvc會話超時

我可以實現ActionFilterAttribute並應用於每個方法,但不會自動註銷用戶。只有當用戶試圖爲該操作調用該方法時,它纔會註銷。

謝謝。

回答

4

這是因爲在服務器端維護會話。如果你想讓用戶的瀏覽器中的空閒頁面自動註銷,你必須爲它編寫一些javascript。你可以使用ajax請求來檢查會話是否過期,並根據結果,你可以重定向用戶索引(登錄或任何其他頁面,不需要認證)

12

你應該能夠管理這從web.config:

<system.web> 
    <sessionState timeout="x"/> 
    ... 
</system.web> 

我不是MVC專家,但在ASP.NET中推出的這種行爲的變化並不是我所期望的。

這也可以使用IIS管理應用程序進行配置;不確定您使用的是哪個版本的IIS,但是this Technet article describes即使在較舊的(IIS7之前)版本中應該很容易遵循。請注意,在這個場景之後,這個方法仍然管理web.config文件中的設置,所以如果這是版本控制的,我不會建議以這種方式更改它。