在会话到期前通知用户,可选择续订会话
本文关键字:会话 可选择 用户 通知 | 更新日期: 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的示例,它似乎正是您的问题,请在此处尝试