1

我想检测 asp.net 表单身份验证票证何时过期。然后,我想将由于不活动而退出的用户登录到服务器。当身份验证票过期时,服务器上是否会触发事件?

<sessionState mode="InProc" timeout="5"></sessionState>
<authentication mode="Forms">
  <forms loginUrl="~/Home/AccessDenied" timeout="5" />
</authentication>

在全局 asax 文件中,我尝试了 Session_OnEnd()。但是 context.user 对象为空。当我调用membership.getuser() 它也返回null。我曾尝试在身份验证之前使会话超时,但这无济于事。我正在使用 mvc3 和 ii7.5。

4

1 回答 1

3

会话和表单身份验证有两个完全独立的超时。在这里查看我的帖子:

如何在 ASP.NET 中处理表单身份验证超时异常?

在 Application_PreRequestHandlerExecute 中,您需要检查票证。

还要确保您的会话和表单身份验证超时使用我在此处发布的代码同步。不只是将两者都设置为 60 分钟。由于表单身份验证在一半时间过去之前不会更新“接触”时间,并且每次请求都会更新会话时间,因此它们不同步。

于 2011-10-17T17:42:37.560 回答