如何使用ASP.NET Membership Provider禁用账户?

19

我正在使用asp.net成员资格提供程序,如果用户发布垃圾信息,我需要封锁该用户帐户。如何利用Membership Provider的内置功能实现此目标?

我能否使用IsLockedOut?如果可以,如何在编程时更新它?

谢谢您。


1
不,你不能使用 isLockedOut,它是只读的。但是你可以像我的答案中所示使用 IsApproved。 - gbs
2个回答

34
MembershipUser user = Membership.GetUser("Yourusername");
if(user!=null){
user.IsApproved=false;
Membership.UpdateUser(user);
}

“Unapprove”意味着什么?这样做会有什么后果? - jcolebrand
1
如果IsApproved用户为false,则用户将无法通过身份验证。这与IsLockedOut相同,但是IsLockedOut根据无效输出自动设置。在此情况下,IsApproved是唯一有用的属性。 - gbs
谢谢,我认为这对我很有用。因为这是目前为止最好的解决方案。 - Mindtree

1

目前没有公开的方法可以这样做,但您可以编写存储过程和帮助程序来为您完成此操作。

或者,您可以编写循环以使用编程代码锁定它们;)

for (i=0;i<lockoutTries;i++) membership.login(username,badpassword_constant);

@Marc_s ~ 这是一个可怕的hack,但即使是那些不会编写代码的人也可以轻松编程。我建议的早期方法和它所涉及的逻辑要清智得多。然而,它需要更多的维护工作。 - jcolebrand

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接