Как заблокировать пользователя с помощью проверки подлинности форм - PullRequest
9 голосов
/ 13 марта 2011

Платформа кодирования: ASP.NET 4.0 Webforms with C #

У меня две роли: администратор и член.
В моем приложении администратор может манипулировать большинством данных члена.
Я знаю, что вПроверка подлинности с помощью форм, которую пользователь может разблокировать, например,

            MembershipUser user = Membership.GetUser(clickeduserName);
            user.UnlockUser();
            Membership.UpdateUser(user);

Мои вопросы:

  1. Как заблокировать пользователя при проверке подлинности с помощью форм?
  2. Почему MembershipUser.IsLockedOut Property установлено как ReadOnly?
  3. Разве это не правильный способ заблокировать людей как администратора?

Ответы [ 3 ]

5 голосов
/ 13 марта 2011

Здесь обсуждается несколько вариантов: http://forums.asp.net/t/1435151.aspx

Они варьируются от использования IsApproved (settable) вместо IsLockedOut до смешивания с базовой базой данных SQL для установки флага блокировки.

4 голосов
/ 21 июня 2016

Вы можете заблокировать пользователя (установите для .IsLockedOut значение true), выполнив следующие действия:

    MembershipUser user = Membership.GetUser("UserToLock");        
    for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
    {
        Membership.ValidateUser(user.UserName, "Not the right password");
    }
3 голосов
/ 13 марта 2011

Выдержка из MSDN:

Обычно пользователи автоматически набирают LockedOut при достижении MaxInvalidPasswordAttempts в пределах PasswordAttemptWindow.

Пользователи также могут быть заблокированы, еслиВы используете перегрузку GetPassword или ResetPassword, которая принимает ответ с паролем, и количество неверных ответов, введенных пользователем, достигает значения Членства. MaxInvalidPasswordAttempts в пределах Membership.PasswordAttemptWindow.

Обходным путем может быть использование свойства IsApproved, например:

MembershipUser user = Membership.GetUser();
user.IsApproved = false;
Membership.UpdateUser(user);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...