【问题标题】:How to watch time without activity and interact with asp.net page如何在没有活动的情况下观看时间并与 asp.net 页面交互
【发布时间】:2011-02-03 12:22:50
【问题描述】:

假设我们有 30 分钟的会话超时。

在会话超时前 1 分钟时跟踪用户并与页面交互的最佳方式是什么。

我找到了这个 JQuery 解决方案:link

但我不确定这是否正是我所需要的。如果用户用鼠标移动,这将重置。我需要跟踪活动,例如请求另一个页面或刷新页面。

如果您长时间不活动,godaddy.com 之类的网站会自动注销您。

【问题讨论】:

    标签: .net session timeout tracking


    【解决方案1】:

    保持会话活跃所需的只是在页面加载时启动的非常简单的计时器。计时器不需要 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(...);
    }
    

    并在您希望重置会话超时时调用它。

    【讨论】:

    • 我不想保持会话,出于安全原因,我想在不活动后关闭。但我也会在未来使用它。谢谢
    • @feronovak:更新了答案。
    • 实际上我认为我会结合这两种解决方案,如果有人在他处于活动状态时实际编辑文本,我似乎可以添加会话时间。倒计时并注销他真的很糟糕,因为他没有保存工作 30 分钟,但实际上正在积极写作
    【解决方案2】:

    试试 Joe Stagner 的 Session Time Out Tricks

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-01
      相关资源
      最近更新 更多