【问题标题】:How to expire a session when the system sits idle in asp.net mvc3当系统在asp.net mvc3中处于空闲状态时如何使会话过期
【发布时间】:2012-11-29 22:24:45
【问题描述】:

当系统闲置一段时间后,我如何使会话过期。完成该时间后,它应该被重定向到登录页面。我需要做这个控制器端。我正在使用 asp.net mvc3 应用程序。

【问题讨论】:

  • 您是否尝试在 web.config 中的 <sessionState> 节点上设置 timeout 属性?
  • @DarinDimitrov 还没有。我该怎么做
  • 为什么这不起作用?你能澄清一下吗? timeout 属性允许您指定 ASP.NET 会话超时。确保您也禁用了滑动到期,否则如果发出请求,它将更新超时。此外,您正在谈论 ASP.NET FormsAuthentication 超时,那么这是您需要配置的不同值。使用<forms> 标签。请记住,ASP.NET Session 和 FormsAuthentication 是两个完全不同的东西。
  • 您的控制器动作是否用Authorize 属性修饰?还要确保您已通过将其设置为 false 来禁用slidingExpiration。否则,如果您有一些正在发送请求的脚本,会话令牌将被更新。
  • idle session 表示在一段时间内没有向服务器发送 HTTP 请求。如果是这种情况,那么您为slidingExpiration 属性赋予什么价值并不重要。会话将在不活动期后自动过期。

标签: asp.net-mvc asp.net-mvc-3 c#-4.0 session dns


【解决方案1】:

会话超时时将在服务器上过期。

如果您希望浏览器同时重定向,您必须在客户端上有一个计数器,在 JavaScript 中,它在 0 上会重定向到您的登录页面。

如果没有客户端的某些操作,控制器无法强制重定向浏览器。您还可以考虑使用某种持久连接,例如 SignalR,但这可能超出您的需要。

另一种解决方案是在此答案中使用刷新标题

ASP.NET Push Redirect on Session Timeout

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-31
    • 2012-02-17
    • 1970-01-01
    • 2018-10-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    相关资源
    最近更新 更多