不活动后设置会话超时

时间:2012-03-12 23:30:15

标签: c# asp.net

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

我在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)
    {


    }

什么是简单的解决方案?谢谢

1 个答案:

答案 0 :(得分:1)

如果我理解您的问题,如果用户在某段时间内未执行任何操作,您希望重定向用户的浏览器。

在这种情况下 - 服务器端行为对您没有帮助。连接已经关闭。 global.asax Session_end将在会话结束时触发,并且此时不会连接客户端。 也许您应该阅读有关ASP.NET Page Lifecycle的更多信息。

然而,您可能需要的是某种形式的客户端行为,例如Javascript,在特定超时后,可以重定向用户。 请注意,这有很多问题,包括用户可能会使用多个标签,因此很难准确了解会话何时超时。