.Net 4.5.1 / MVC 5.1.2 / Identity 2.0.1
问候,
我需要管理员禁用(无法删除)用户帐户的方法,因此我将LockoutEndDateUTC字段设置为将来的日期,并且我已将LockoutEnabled字段设置为true,以供所有用户使用。还有另一个SO线程here,它讨论了相同的方法。这显然有效,但前提是用户必须输入用户名/密码。
这就是问题所在......如果用户使用"记住我"设置了身份验证cookie。在被禁用之前的功能,没有检查锁定并且所有后续访问都经过身份验证并且"锁定"最终被忽视了。
首先,我认为这是Identity中的一个错误,我已经在codeplex上记录了一个问题。
第二,是否有更好的方法可以在2.0版中禁用用户?
谢谢!
答案 0 :(得分:7)
锁定的用户无法登录,但实际上被锁定并不会拒绝现有的Cookie,否则恶意用户可能会导致真实用户的cookie被拒绝。当然,如果您确实需要这种行为,只需在登录操作中锁定的用户上调用UpdateSecurityStamp,这将在下次对数据库进行验证时拒绝现有的cookie。