设置不活动后的会话超时

本文关键字:会话 超时 不活动 设置 | 更新日期: 2023-09-27 18:27:28

我想在没有活动时重定向回主页。然而,我没有用户登录或需要一个。但是,我希望能够在没有活动的情况下重定向回主页。

我在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,它可以在特定的超时后重定向用户。请注意,这有很多问题,包括用户可能使用多个选项卡,因此很难准确知道会话何时超时。