簡體   English   中英

自定義session_end重定向實現?

[英]custom session_end redirect implementation?

我正在使用MVC應用程序。 我有一個要求,當會話結束時,應用程序應重定向到主頁。 我需要一般地實現此邏輯。

我做了一些研究,似乎有一項要求,就是我需要在global.asax的Session_Start中設置任何要會話的內容。 然后,當會話過期時,應該觸發global.asax中的Session_End。 在會話結束時,我需要確保:

  1. 用戶被重定向到登錄頁面。 我可以重定向到Session_End中的基本URL來完成此操作。
  2. 當用戶重新登錄時,應將他/他重定向到會話過期時所在的頁面

對我而言,完成上述第一和第二最佳方法是什么?

    protected void Session_Start(object sender, EventArgs e)
    {
        Session["X"] = 1;
    }

    protected void Session_End(object sender, EventArgs e)
    {

    }

重定向只能在HTTP響應中發出(它是響應標頭,通常為302狀態)。 只能響應HTTP請求而發送HTTP響應。 因此,如果要重定向瀏覽器,則只能在他們請求下一頁時執行。 當session_end事件發生時,您無法神奇地接觸到瀏覽器並使之執行某些操作。

將其作為服務器端事件處理是不正確的方法。 您將需要向頁面添加Javascript以跟蹤剩余的會話時間,並使用location.href而不是使用重定向。 例如,對於十分鍾的超時,您可以使用類似以下的內容:

setTimeout(function(){ location.href="https://www.example.com/timeout.aspx"; }, 600000);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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