会话到期前的警报用户,续订会话的选项

时间:2012-03-17 20:15:28

标签: c# javascript asp.net

我在网络配置中设置会话时间。我还有一个javascript用于检测会话超时并让用户知道。

我希望能够在会话超时前30秒或一分钟或更长时间通过弹出窗口提醒用户并让他们有机会扩展或取消并让它超时。可以这样做吗?我试图在互联网上使用各种方法,但似乎没有工作。他们都要求我下载一些东西,我不想这样做。

<script type="text/javascript">
    var sessionTimeout = "<%= Session.Timeout %>";

    function DisplaySessionTimeout() {
        sessionTimeout = sessionTimeout - 1;

        if (sessionTimeout >= 0)
            window.setTimeout("DisplaySessionTimeout()", 60000);
        else
            alert("Your current Session is over due to inactivity.");
    }
</script>

我也在检查代码背后的超时并重新编写,但考虑只是在javascript中执行。

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


private void CheckSession()
{
    if (Session["ASP.NET_SessionId"] == null)
    {
       // Session.RemoveAll();
       Response.Redirect("Home.aspx");
    }
}

3 个答案:

答案 0 :(得分:3)

你必须在与会话相同的时间限制内拥有一个计时器;客户端无法确切知道会话到期前的时间。那就是我在应用程序中所做的。

我们执行JQuery $.get("keepalive.aspx")向ASP.NET页面发出请求,该页面访问会话并刷新它,使当前会话保持活动状态。然后,您还将重置客户端计时器。这对我们来说效果很好。

有关详细信息,请参阅this post

答案 1 :(得分:2)

Here是如何使用Jquery提供“会话超时”警告的一个很好的例子

Here是该动作的演示<​​/ p>

答案 2 :(得分:0)

您还可以查看Microsoft示例,这似乎是您的问题,请尝试here