C# 处于非活动状态后的会话超时

C# 处于非活动状态后的会话超时,c#,asp.net,ajax,C#,Asp.net,Ajax,我有一个需要登录的应用程序,还有一个AJAX定时器。我读过几篇关于如何在一段时间后创建会话超时的文章。但是,如果用户在5分钟内没有单击某个按钮,我希望会话结束。是否有办法在每次单击后重置计时器?您可以在页面加载上设置一个javascript计时器(使用setTimeout),每次回发时都会重置该计时器(也可以通过不回发的按钮单击来重置),当该计时器计数为零时,它将重定向到logout.aspx(例如:window.location='logout.aspx')它处理清除会话,然后重定向回登录页面

我有一个需要登录的应用程序,还有一个AJAX定时器。我读过几篇关于如何在一段时间后创建会话超时的文章。但是,如果用户在5分钟内没有单击某个按钮,我希望会话结束。是否有办法在每次单击后重置计时器?

您可以在页面加载上设置一个javascript计时器(使用setTimeout),每次回发时都会重置该计时器(也可以通过不回发的按钮单击来重置),当该计时器计数为零时,它将重定向到logout.aspx(例如:window.location='logout.aspx')它处理清除会话,然后重定向回登录页面。

尝试以下操作:

function logout() { 
    location.href = '/your/logout/page.aspx';
}

var timeout = setTimeout(300000, logout);
function resetTimeout() {
    clearTimeout(timeout);
    timeout = setTimeout(300000, logout);
}

document.onclick = resetTimeout;

+1.管理定时器样本。请注意,您可能需要在检测到“活动”的其他位置调用resetTimeout,如果更早处理,onclick可能无法到达文档。