【问题标题】:How to implement session Time out page to show using asp.net mvc如何使用 asp.net mvc 实现会话超时页面以显示
【发布时间】:2010-10-21 18:23:24
【问题描述】:

我的 webconfig 文件中有这个...

<authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

timeout 2880 表示需要多少秒或分钟?

如何在我的会话超时时显示我需要显示 SessionTimeout.aspx 页面...

谢谢

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    您可以使用操作过滤器在 MVC 中识别会话超时。这是a question 我问了这个问题。列出的时间以分钟为单位。 (查看 cmets 的链接)

    【讨论】:

    • 根据 MSDN,timeout 指定时间,以整数分钟为单位msdn.microsoft.com/en-us/library/1d3t3c61(v=VS.80).aspx
    • @bzlm,感谢您的澄清,我不久前停止使用会话超时。将更新答案。
    • 值 2880 应该给出提示。为什么默认是 48 分钟? :)
    • 那么我可以用 30 代替 2880 吗?
    • @Kumar,是的 --- @bzlm,整个编程世界都有有趣的默认设置,所以它没有触发任何触发器 :)
    【解决方案2】:

    正如 Gabriel 所说,使用 FormsAuthentication 超时将在幕后发生,这意味着如果您的用户在时间到期后访问页面,将被要求再次登录。

    我建议您考虑将slidingExpiration="true" 添加到您的web.config。

    此外,您可能希望实现自动注销,以便在达到超时后不会暴露潜在的敏感数据。

    如果用户通过身份验证,我通过在每个页面加载时调用 window.setTimeout(myFunction, 30000) 来做到这一点。该函数使用 JQuery ajax 来执行返回会话到期前剩余时间量的操作。一旦时间量低于零,您可以通过 JavaScript 重定向到注销操作。否则,该方法只需再次调用 window.setTimeout(myFunction, 30000) 以继续检查。

    您可以通过添加警告消息并允许用户单击使用 JQuery ajax 的按钮来点击重置计时器的操作来变得更有趣。

    【讨论】:

      【解决方案3】:

      在 javascript 中创建一个计数器,并在达到超时时重定向用户。

      编辑:据我了解,您想在用户长时间不活动时重定向到页面是吗?

      【讨论】:

      • 谢谢 Joakim,如果你有请在代码中解释一下我对这种事情完全陌生,如何使用 javascript 实现计数?
      • 在问题的示例中,会话超时为 2 天。即使对于一个非常酷的网页,也需要很长时间才能处于非活动状态。 :)
      • 我同意这是一个很长的超时时间,但是问题是在我看来是关于客户端重定向,而不是在达到登录超时时服务器重定向。
      猜你喜欢
      • 1970-01-01
      • 2011-08-12
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 2015-12-19
      相关资源
      最近更新 更多