是否有可能在發生超時時重定向到登錄頁面而無需等待用戶首先點擊任何內容? 現在,當超時發生時,頁面用戶仍然顯示,但只要用戶點擊任何它進入登錄頁面。 謝謝。ASP.Net表單身份驗證 - 進入登錄頁面超時
回答
如果會話已過期,您需要檢查客戶端。最簡單的方法是在頁面加載完成後使用JavaScript簡單地開始倒計時(只要超時)。當它到期時,將用戶發送到登錄頁面。或者,也許更好:讓用戶知道會話已過期,因爲如果你只是把他送到某個地方,他可能不會太高興。雖然我的網上銀行軟件確實如此,但出於安全原因,當然。
這裏是一個非常簡單的例子:http://jsfiddle.net/39Sj6/1/
function sessionHasExpired(){
if(confirm("Your session has expired. Do you want to go to the login page")){
window.location = "http://google.com/?q=login";
}
}
var sessionTimeInMilliseconds = 1000*60*5; // here: 5 minutes
setTimeout(sessionHasExpired, sessionTimeInMilliseconds);
(在的jsfiddle,你將不會被重定向到Google,因爲這是由的jsfiddle禁止的,但原則上這是可行的)
是的,你可以通過Javascript計時器輪詢會話狀態和ajax調用來檢查服務器會話狀態,然後重定向到登錄頁面,或者,你可以設置一個計時器到指定的時間限制(20分鐘或會話超時)然後重定向到登錄頁面。
如果您輪詢服務器,會話將刷新。這就像打開冰箱門看看燈是否熄滅。 – 2012-03-02 16:23:22
我沒有意識到一個GET會刷新會話,那不會工作。雖然可能是超時的一個很好的選擇,有點像會話除顫器。 :) – 2012-03-02 16:37:11
絕對 - 「你不死我的,該死的會議!」 :-) – 2012-03-02 16:39:24
- 1. 檢測登錄頁面中的表單身份驗證超時
- 2. ASP.Net登錄身份驗證
- 3. 登錄身份驗證Asp.net
- 4. Laravel身份驗證登錄超時
- 5. LinkedIn登錄身份驗證PHP頁面
- 6. Asp.net mvc 3使用登錄表單進行Windows身份驗證
- 7. 表單身份驗證登錄超時不起作用
- 8. HttpRequestValidationException重定向到登錄頁面(表單身份驗證)
- 9. 帶有多個登錄頁面的表單身份驗證
- 10. PRE_AUTH_FILTER +登錄表單身份驗證
- 11. VB.NET登錄表單身份驗證
- 12. 登錄控制表單身份驗證
- 13. 表單身份驗證超時後重定向到頁面
- 14. 使用多個登錄表單進行表單身份驗證
- 15. 使用ASP.net中的表單身份驗證登錄後可以訪問頁面
- 16. ASP.NET無需登錄頁面的自定義身份驗證
- 17. 如何創建Asp.net mvc安全登錄頁面身份驗證?
- 18. 要求登錄默認頁面的ASP.NET身份驗證
- 19. ASP.NET MVC身份驗證重定向到區域登錄頁面
- 20. 如何啓用「登錄爲頁面」進行Facebook身份驗證?
- 21. 登錄在每個頁面進行身份驗證jsp/servlet
- 22. 動態表單身份驗證超時?
- 23. 在ASP.NET MVC3中混合基本身份驗證和表單身份驗證
- 24. 使用表單身份驗證進行單點登錄
- 25. asp.net從域名登錄身份驗證
- 26. ASP.NET窗體身份驗證 - 多登錄
- 27. Asp.net的表單身份驗證
- 28. 表單身份驗證
- 29. asp.net不使用登錄頁面使用SSL進行身份驗證
- 30. Laravel - 登錄進行身份驗證
謝謝安德烈。這是一個Intranet應用程序,在某些頁面上顯示了一些準確的數據,所以如果在超時時他們會自動註銷,他們不介意。你能提供一些關於如何實現這個目標的示例代碼嗎?如果我正在使用母版頁,倒計時腳本應該在母版頁上嗎? – NoBullMan 2012-03-02 18:09:11
我不小心將示例添加到Mark的答案中,而不是我的。我也將這個例子加入了這個答案。如果您不想問用戶是否離開頁面,請不要使用confirm()構造,而只需設置window.location。如果每個頁面都包含腳本,那麼腳本可以添加到母版頁中,是的。不是說如果你正在做Ajax調用,你應該在每個Ajax調用之後重置超時。 – 2012-03-02 18:28:48
再次感謝安德烈。幾件事情:當我點擊確定並進入登錄頁面時,我可以點擊瀏覽器的後退按鈕,轉到我所在的位置,繼續做我正在做的事情。超時已發生,但我的會話仍然存在。另外,如果我將腳本放在主頁面上,當我從一個頁面跳轉到另一個頁面時,計時器是否從0開始計算,還是從它的剩餘位置開始計算? – NoBullMan 2012-03-02 19:00:00