FormsAuthentication.SignOut();
Session.RemoveAll();
return RedirectToAction("Login", "Home");
當用戶空閒時間是在MVC4項目5分鐘?
FormsAuthentication.SignOut();
Session.RemoveAll();
return RedirectToAction("Login", "Home");
當用戶空閒時間是在MVC4項目5分鐘?
根據您的閒置定義,貌似可以使用FormsAuthentication
類的都SlidingExpiration
和Timeout
財產做。
將超時設置爲5分鐘,將SlidingExpiration設置爲true,您應該很好。
您應該在IIS級別執行此操作。
在IIS中,您可以隨時設置會話超時。
本文TechNet上的解釋如何做到這一點: http://technet.microsoft.com/en-us/library/cc725820(v=ws.10).aspx
注意:一旦他採取另一個行動(當會話結束)
用戶將只被重定向到登錄頁面如果您希望登錄的內容在5分鐘後也應該隱藏,那麼您可以將Kenneths答案與每頁上的小javascript結合起來。
setTimeout(function() {
// iis will handle the rest.
location.reload();
}, 300000);
如果你這樣做,它必須由服務器啓動。而且,用戶不會喜歡這種表單輸入。 – CodeCaster
什麼是必須由服務器啓動的「它」?表單身份驗證本身將註銷重新加載並重定向到loginurl(如果需要)並保留returnulr。用戶不喜歡什麼?當他們閒置時。他們的頁面會自動註銷?個人數據呢?你是否希望任何其他人看到你離開的頁面並忘記註銷? – maxlego
「it」我的意思是服務器註銷。一個頁面不應該在設置的超時後重新加載,因爲正如我所說的,用戶將失去輸入。例如,它可以輪詢服務器用戶是否仍然登錄,如果沒有,則在頁面上放置「請再次登錄」覆蓋。 – CodeCaster
5分鐘真的很短。 – Bart
您還需要定義什麼是「閒置」?五分鐘沒有任何要求? –
@AdrianGodong耶,五分鐘沒有任何要求。 – user951581