【问题标题】:Keep Session in Sync with FormsAuthentication使会话与 FormsAuthentication 保持同步
【发布时间】:2012-06-22 01:33:58
【问题描述】:

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

问题是当会话过期而用户仍在登录时 - 事情变得一团糟,因为会话为空但用户仍在登录。

我怎样才能让他们彼此同步,所以会话只有在他们退出或vs.时才会过期。

谢谢。

【问题讨论】:

  • 您是否考虑将用户 ID 和角色存储在表单身份验证 cookie 本身中?那是common practice

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


【解决方案1】:

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

杀死认证cookie:

FormsAuthentication.SignOut();

【讨论】:

  • 在 Session_End 事件中执行此操作时出现空异常。
  • 您是否在会话中遇到空异常?
  • 获取 FormsAuthentication.SignOut() 方法的异常。 (可以理解 - 一个快速的谷歌搜索解释它)
猜你喜欢
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
  • 2022-01-27
  • 2013-11-14
  • 2015-01-16
  • 1970-01-01
  • 2013-05-13
相关资源
最近更新 更多