【发布时间】:2011-12-09 11:35:05
【问题描述】:
我想检测 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。
【问题讨论】:
-
我在客户端添加了一个计时器。它会弹出一个通知,告诉用户他们已经不活动一段时间了。如果他们想扩展他们的会话,那么我会向服务器发送一个 ajax 帖子并更新 Membership User 对象。这扩展了他们的表单身份验证会话。我愿意接受其他建议
-
您可以结合使用此方法来确定超时,方法是读取票证并将该值添加到进入页面的 javascript。
标签: asp.net asp.net-mvc session session-timeout form-authentication