[英]How to fix redirection page after session timeout
我使用空閑時使用會話超時的ASP.NET C#創建一個示例網站,我使用JavaScript進行會話超時,我的JavaScript代碼正常工作,我已將會話超時設置為10秒進行測試,經過10秒后它將重定向到“登錄”頁面,並且我的MasterLayout未被重置,並且在10秒鍾后,它將再次顯示一條消息,表明您的會話已結束。
我試圖在web.config中設置會話超時:
<configuration>
<system.web>
<sessionState timeout="2"></sessionState>
</system.web>
</configuration>
和身份驗證:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" timeout="1" />
</authentication>
</system.web>
</configuration>
會話到期后,重定向頁面將不起作用。
這是我在JavaScript中的代碼:
window.setTimeout("endSession();", 10000);
function endSession()
{
alert("Your session has expired. You will be redirected to the login page.");
window.location("Login.aspx");
}
10秒鍾后,它將重定向到登錄頁面,但MasterLayout未被重置,並且10秒鍾后,它將再次顯示消息。
我希望10秒鍾后輸出將重定向到登錄頁面,並且masterlayout從一開始就很新鮮,就像網站的首次運行一樣,並且10秒鍾后不再彈出任何消息。
試試這個: window.location.replace("Login.aspx");
或window.location.href = 'Login.aspx';
兩者都會重定向您的登錄頁面。 但:
location.replace
=不會將當前頁面添加到歷史記錄中。 因此,在導航后退按鈕時將無法返回。
location.href
=這會將當前頁面添加到歷史記錄中。 然后,用戶可以單擊“后退”按鈕返回到它。
我想在您的情況下使用location.replace
更合理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.