【发布时间】:2011-02-03 12:22:50
【问题描述】:
假设我们有 30 分钟的会话超时。
在会话超时前 1 分钟时跟踪用户并与页面交互的最佳方式是什么。
我找到了这个 JQuery 解决方案:link
但我不确定这是否正是我所需要的。如果用户用鼠标移动,这将重置。我需要跟踪活动,例如请求另一个页面或刷新页面。
如果您长时间不活动,godaddy.com 之类的网站会自动注销您。
【问题讨论】:
标签: .net session timeout tracking
假设我们有 30 分钟的会话超时。
在会话超时前 1 分钟时跟踪用户并与页面交互的最佳方式是什么。
我找到了这个 JQuery 解决方案:link
但我不确定这是否正是我所需要的。如果用户用鼠标移动,这将重置。我需要跟踪活动,例如请求另一个页面或刷新页面。
如果您长时间不活动,godaddy.com 之类的网站会自动注销您。
【问题讨论】:
标签: .net session timeout tracking
保持会话活跃所需的只是在页面加载时启动的非常简单的计时器。计时器不需要 jQuery,但刷新会话很方便:
setInterval(function() {
$.get("/keepalive.ashx");
}, 29 * 60 * 1000); // time in milliseconds
如果您想结束会话,只需将其更改为重定向:
setTimeout(function() {
location.href = "/logout.aspx";
}, 29 * 60 * 1000);
由于计时器无法在页面加载后继续存在,因此如果用户仍处于活动状态,它不会将用户注销。如果您想在页面上重置超时的其他内容,最好将其做成一个函数:
var sessionTimer;
function resetSessionTimeout() {
if (sessionTimer)
clearTimeout(sessionTimer);
var sessionTimer = setTimeout(...);
}
并在您希望重置会话超时时调用它。
【讨论】:
试试 Joe Stagner 的 Session Time Out Tricks
【讨论】: