【问题标题】:ASP.NET MVC2 Implement session timeout warningASP.NET MVC2 实现会话超时警告
【发布时间】:2012-09-23 20:58:20
【问题描述】:

我需要有关 MVC2 应用会话超时警告的帮助。当用户在会话超时的“n”分钟内时,应该会出现一个弹出窗口。是否有某种方法可以知道该信息或必须计算该信息。我有标准的获取/发布操作,还有 AJAX 请求。提前致谢。

【问题讨论】:

    标签: c# .net session asp.net-mvc-2 session-timeout


    【解决方案1】:

    ASP.NET sessione 在对服务器的最后一次请求后的 n 分钟后过期,因此只需了解 n 是什么,将其呈现到页面,并使用简单的 Javascript 计时器显示消息在适当的时候,像这样:

    <sctipt type="text/ecmascript">
    var timeoutMins = <%= Session.Timeout %>; // HttpSessionstate.Timeout is the timeout period in minutes
    setTimeout( informUser, 0.75 * ( timeoutMins * 60 * 1000 ) );
    function informUser() {
        alert("Your session is expiring shortly");
    }
    </script>
    

    0.75 * ( timeoutMins * 60 * 1000) 部分将超时长度值转换为毫秒,然后将其缩小以给用户时间做出反应。您可以通过向服务器发出 AJAX 请求来自动扩展会话(使用当前的 ASP.NET 会话 cookie,这很重要)。

    修改此代码以使用固定的警报周期或计算“剩余分钟数”数字是留给读者的练习。

    【讨论】:

    • 这是一个好的开始,在某些应用程序中可能是合适的,但需要注意的是它不支持滑动过期(msdn.microsoft.com/en-us/library/…)、通过 AJAX 请求更新会话或情况打开多个选项卡/窗口的位置。
    猜你喜欢
    • 2012-05-18
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-06
    • 1970-01-01
    • 2012-07-17
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多