表单认证超时记录



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

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

在全局asax文件中,我尝试了Session_OnEnd()。但是上下文。用户对象为空。当我调用membership.getuser()时,它也返回null。我已经尝试在验证之前使会话超时,但这没有帮助。我使用的是mvc3和ii7.5.

会话和表单认证有两个完全独立的超时。请看我在这里发表的文章:

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

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

也要确定你的会话和表单验证超时是同步使用我张贴在那里的代码。而不是把两者都设定为60分钟。由于表单认证直到一半的时间过去才更新'触摸'时间,并且每个请求都更新会话时间,因此它们不同步。

最新更新