【问题标题】:Session timeout after period of inactivity不活动期后会话超时
【发布时间】:2012-09-28 00:39:20
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net ajax


    【解决方案1】:

    试试这个:

    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 也可能无法到达文档。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      • 2013-03-13
      相关资源
      最近更新 更多