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

问题描述 投票:2回答:3

我在web配置中设置会话时间。我还有一个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");
    }
}
c# javascript asp.net
3个回答
3
投票

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

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

有关更多信息,请参阅this post


2
投票

Here是如何用Jquery给出“Session Timeout”警告的一个很好的例子

Here是它的实际演示


0
投票

您也可以查看Microsoft示例,看起来确切是您的问题,请尝试here

© www.soinside.com 2019 - 2024. All rights reserved.