在会话到期前通知用户,可选择续订会话

本文关键字:会话 可选择 用户 通知 | 更新日期: 2023-09-27 18:28:11

我正在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");
    }
}

在会话到期前通知用户,可选择续订会话

您必须在与会话相同的时间限制内有一个计时器;客户端无法准确地知道会话在过期之前的时间。这就是我在申请中所做的。

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

请参阅这篇文章了解更多信息。

下面是一个如何使用Jquery 发出"会话超时"警告的好例子

下面是它在中的演示

您也可以查看Microsoft的示例,它似乎正是您的问题,请在此处尝试