簡體   English   中英

閑置后設置會話超時

[英]set session timeout after inactivity

沒有活動時,我想重定向回主頁。 但是,我沒有用戶登錄名或需要登錄名。 但是,我希望在沒有活動時能夠重定向回主頁。

我在web.conf中設置

<system.web>
<sessionState mode="InProc"  timeout="2">

然后,我在首頁中設置了

Session["UserId"] = 1;

我也試過了,但是該功能甚至沒有觸發。

protected void Page_Init(object sender, EventArgs e)
    {
        CheckSession();
    }


    private void CheckSession()
    {
        if (Session["UserId"] == null)
        {
            Response.Redirect("KioskHome.aspx");
        }
    }

我可以使用global.asax文件嗎?

void Session_Start(object sender, EventArgs e)
    {
        // Code that runs when a new session is started

    }

    void Session_End(object sender, EventArgs e)
    {


    }

什么是簡單的解決方案? 謝謝

如果我理解您的問題,那么如果用戶在一段時間內未執行任何操作,則希望重定向用戶的瀏覽器。

在這種情況下,服務器端的行為將無濟於事。 連接已關閉。 會話結束時將觸發global.asax Session_end,屆時將沒有客戶端連接。 也許您應該閱讀有關ASP.NET頁面生命周期的更多信息。

但是,您可能需要某種形式的客戶端行為,例如Javascript,在特定的超時后,它可以重定向用戶。 請注意,這存在許多問題,包括用戶可能使用多個選項卡,因此很難准確知道會話何時超時。

暫無
暫無

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

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