【问题标题】:Forms Authentication - Signing out a user programatically表单身份验证 - 以编程方式注销用户
【发布时间】:2015-03-21 20:32:52
【问题描述】:

我想知道如何使用基于表单的身份验证以编程方式将用户注销。

在线用户:

  • 管理员
  • 用户1
  • 用户2
  • 用户3

如果我是管理员,如何将 User2 引导出系统? FormsAuthentication.Signout() 将从当前用户(管理员)注销/删除 cookie,这将毫无意义。

否则,我可以在数据库中放置一个标志 - 下次访问时,操作过滤器会强制他们进入注销页面并让他们注销。但这似乎是一种 hack。

【问题讨论】:

  • 你不能用内置功能做到这一点,所以数据库中的标志是正确的方法。或者其他方式,您可以将该用户的一些标志放入 HttpContext.Cache 并在每次访问时检查它
  • np。完成 :) 将其作为答案移动

标签: asp.net forms authentication nopcommerce


【解决方案1】:

当前的内置功能不允许您退出非当前确定,因此您可以使用数据库中的标志选项。或者作为另一种可能的方式 - 将用户的这个标志存储在一些全局存储中,如HttpContext.Current.Cache,然后在每个用户请求时检查它。但在这种情况下,如果您使用 Remember Me 功能,这可能不起作用,因为此存储将在应用程序重新启动时刷新。

【讨论】:

  • 我想我会做的是,当用户超时时,将用户名存储在数据库中的单独表中。在任何后续访问中,用户都会被重定向到注销页面。当用户登录时,他们的名字会从表中删除。
  • 是的,应该没问题,所以用户在当前的请求处理过程中不会出错,但在下一个请求时,他将被注销。
猜你喜欢
  • 2019-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-30
  • 2011-12-08
  • 2017-08-15
  • 1970-01-01
  • 2021-05-24
相关资源
最近更新 更多