我期待在基本頁面中包含一個行爲,當會話超時(在說20分鐘後),回撥到客戶端,擦除會話cookie,並將用戶重定向到「您的會話已超時」頁面。如何在asp.net中超時客戶端會話
在我開始編碼之前,我想知道在框架中是否有一個功能已經處理了。
謝謝。
我期待在基本頁面中包含一個行爲,當會話超時(在說20分鐘後),回撥到客戶端,擦除會話cookie,並將用戶重定向到「您的會話已超時」頁面。如何在asp.net中超時客戶端會話
在我開始編碼之前,我想知道在框架中是否有一個功能已經處理了。
謝謝。
試試這個
<script language='javascript'>
function SessionTimeOuts()
{
self.setTimeout("RedirectToLogin();", 'any time period you wish to put here');
}
function RedirectToLogin()
{
alert('Your session has expired.');
window.location.href = 'login.aspx'
//any page where you want the redirection
}
</script>
<BODY onload=SessionTimeOuts()'>
ASP.NET MembershipProvide [R應該幫助您處理該
糾正我,如果我錯了,但ASP.Net已經在這樣做。您只需在每次回發或ajax調用後向客戶端發送間隔值即可。在這段時間內,您還必須執行一個超時功能,將「您的會話已過期」對話框視爲@geek下面提到的。
起初,我認爲這是偉大的,但後來我認爲,如果會話過期是由JavaScript處理,它可以被篡改。有沒有辦法讓服務器回電話頁面? – frenchie 2011-04-03 02:50:43
如果沒有使用javascript(或Silverlight等),如何從服務器進行回調是沒有辦法的。所以它總是容易受到客戶端的變化。通過適當配置會話和身份驗證cookie超時,可以增強極客的解決方案。請參閱http://stackoverflow.com/questions/1470777/forms-authentication-timeout-vs-session-timeout。攻擊者仍然可以修改(或只是禁用)這個JavaScript,但他會被重定向到會話過期後的下一個請求的登錄頁面。可能是它更簡單的使用http重定向而不是此javascript。 – 2011-04-03 10:06:53
@Jakub:感謝您的鏈接和意見 – 2011-04-03 11:03:40