【问题标题】:mvc session expire attribute not triggeringmvc 会话过期属性未触发
【发布时间】:2014-03-19 10:26:28
【问题描述】:

我正在尝试使用以下链接实现会话过期属性:

Redirect at Session Timeout in Global.asax in mvc4

我已经添加了类并将属性添加到控制器方法中。

但是一旦会话超时它似乎并没有触发属性类。

我知道会话已过期,因为我尝试在 global.acsx 文件中实现 Session_End 并且它已过期并输入代码。

网络配置:

<sessionState compressionEnabled="true" timeout="1" />
<authentication mode="Forms">
  <forms loginUrl="/Index" timeout="1" slidingExpiration="true" />
</authentication>

关于我缺少什么的任何想法?

【问题讨论】:

  • 你是否遵循相同的代码解释here
  • 不,我一直在关注此链接,我尝试了您发布的链接,但同样如此。我的印象是,当会话到期时,会调用该类,然后运行该方法。但我认为我没有正确理解这一点,因为控制器如何知道会话何时到期?
  • 您想在会话到期时自动重定向?或者您想在会话过期后用户执行某些操作时重定向?
  • 会话过期后重定向

标签: c# asp.net-mvc iis


【解决方案1】:

这不是您设置的会话其身份验证cookie到期时间。

表单身份验证 cookie 存储在具有用户 ID、名称、令牌和时间属性的 .ASPXAUTH 中。验证使用身份验证

会话完全不同。它存储在 ASP.NET_SessionId 中,其中包含针对服务器上用户的字典对象/容器。

要设置会话超时,您需要在 web.config 中的会话键中设置超时

<sessionState mode="InProc" customProvider="DefaultSessionProvider" TimeOut="1">

这将使您在服务器上的会话对象在 1 分钟内过期。

希望它有意义。有关更多信息,请谷歌表单身份验证和会话之间的区别。

问候

沙兹

【讨论】:

  • 我会看看这个。谢谢
猜你喜欢
  • 1970-01-01
  • 2014-04-14
  • 2017-12-18
  • 2015-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多