簡體   English   中英

會話超時后如何修復重定向頁面

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM