使Session与FormsAuthentication保持同步

时间:2012-06-21 17:32:14

标签: asp.net security session login forms-authentication

当用户通过我的登录页面登录时,我使用FormsAuthentication对它们进行身份验证,并设置一些包含用户特定信息的Sessions,如UserID和RoleID。我根据这些值设置网站内容。

问题是当会话到期且用户仍然登录时 - 事情搞砸了,因为会话为空但用户仍然登录。

如何让它们彼此保持同步,因此会话只有在退出或退出时才会过期。

谢谢。

1 个答案:

答案 0 :(得分:0)

当会话在global.asax中结束(Session_OnEnd)时,您可以终止表单身份验证cookie。这样做会在任何后续请求时将用户重定向到默认页面(或登录页面,具体取决于您的设置方式)。当用户手动注销时,您也应该终止身份验证cookie - 效果相同。

要终止身份验证Cookie:

FormsAuthentication.SignOut();