2012-01-20 44 views
4

一个有点奇怪的问题传达给我们。是否可以通过编程方式导致单个用户作为另一个用户(例如以管理员身份)登录时被“注销”。ASP.net表单身份验证 - 管理员杀死单个用户的会话

例如一个管理员在stackoverflow将决定我应该注销 - 点击一个按钮,然后我将被迫再次登录到我的下一个SO请求。

这是使用基于标准表单的身份验证运行ASP.net的网站。

回答

1

因为验证过的会话依赖于cookie,所以他们彼此不了解。

所以你需要跟踪登录的用户可能与他们的角色一起。并在每个请求开始时进行检查。

您可以通过跟踪开始。

  1. 用户A - 角色“管理员”在日志中创建数据库行
  2. 用户A - 角色“经理”登录,现在您标记步骤的行1已过期,并为用户A创建新行 - 角色'manager'
  3. 用户A - 角色'admin'尝试执行某个操作。在开始请求方法中,您将验证此会话是否标记为过期。如果只是注销,请删除第1步中的行并重定向至登录。
  4. 用户A点击注销,删除用户A - 角色“经理”行
+0

我在想,我们需要这样的事情,讨厌的一点,但你去那里。感谢您的意见。 – Paddy