如何使用表单身份验证锁定用户

时间:2011-03-13 05:17:52

标签: c# asp.net webforms forms-authentication

编码平台:使用C#的ASP.NET 4.0 Webforms

我有两个角色admin和成员。
在我的应用程序中,管理员可以操纵大多数成员数据 我知道在表单身份验证中,用户可以像

一样解锁
            MembershipUser user = Membership.GetUser(clickeduserName);
            user.UnlockUser();
            Membership.UpdateUser(user);

我的问题是,

  1. 如何在表单身份验证中锁定用户?
  2. 为什么MembershipUser.IsLockedOut Property设置为ReadOnly?
  3. 这不是LockOut的正确方法 人们作为管理员?

3 个答案:

答案 0 :(得分:5)

这里讨论了几个选项:http://forums.asp.net/t/1435151.aspx

它们不同于使用IsApproved(可设置)而不是IsLockedOut来破坏底层SQL数据库以设置锁定标志。

答案 1 :(得分:4)

您可以通过执行以下操作来锁定用户(将.IsLockedOut设置为true):

    MembershipUser user = Membership.GetUser("UserToLock");        
    for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
    {
        Membership.ValidateUser(user.UserName, "Not the right password");
    }

答案 2 :(得分:3)

摘自MSDN:

  

通常情况下,在LockedOut内达到MaxInvalidPasswordAttempts时,用户自动为PasswordAttemptWindow

     

如果您使用接受密码答案的GetPasswordResetPassword重载并且用户输入的错误答案数达到了成员资格值,则也可以锁定用户。{{1}在MaxInvalidPasswordAttempts

解决方法可能是使用IsApproved属性,如下所示:

Membership.PasswordAttemptWindow