Как заблокировать пользователя с помощью проверки подлинности форм
платформа кодирования: ASP.NET 4.0 Webforms с C#
у меня есть две роли admin и member.
В моем приложении, администратор может управлять большинством данных.
Я знаю, что в аутентификации форм пользователь может быть разблокирован, как,
MembershipUser user = Membership.GetUser(clickeduserName);
user.UnlockUser();
Membership.UpdateUser(user);
мои вопросы:
- как заблокировать пользователя при проверке подлинности форм?
- почему
MembershipUser.IsLockedOut Property
установить как ReadOnly? - это не правильный способ локаут люди как администратор?
3 ответов
здесь обсуждается несколько вариантов:http://forums.asp.net/t/1435151.aspx
они варьируются от использования IsApproved (settable) вместо IsLockedOut до mucking с базовой базой данных SQL для установки флага блокировки.
вы можете заблокировать пользователя (set .IsLockedOut
to true), выполнив следующие действия:
MembershipUser user = Membership.GetUser("UserToLock");
for (int i = 0; i < Membership.MaxInvalidPasswordAttempts; i++)
{
Membership.ValidateUser(user.UserName, "Not the right password");
}
выдержка из MSDN:
обычно, пользователя
LockedOut
автоматически, когдаMaxInvalidPasswordAttempts
достигается черезPasswordAttemptWindow
.пользователи также могут быть заблокированы, если вы используете
GetPassword
илиResetPassword
перегрузка, которая принимает ответ пароля и количество плохих ответов, введенных пользователем, достигает значения членства.MaxInvalidPasswordAttempts
внутриMembership.PasswordAttemptWindow
.
временное решение можно использовать свойство IsApproved такой:
MembershipUser user = Membership.GetUser();
user.IsApproved = false;
Membership.UpdateUser(user);