27

Как отключить функцию блокировки учетной записи для SqlMembershipProvider?Отключение блокировки учетной записи с помощью SqlMembershipProvider

В документации MSDN для свойства MaxInvalidPasswordAttempts не указывается, как его отключить. Если я не могу найти правильный способ сделать это, я установлю атрибут maxInvalidPasswordAttempts на максимальное значение int, которое может эффективно достичь того же результата.

Мне хорошо известно, что блокировка блокировки учетных записей - не самая лучшая идея, но мне нужно добиться этого в краткосрочной перспективе.

ответ

39

Настройка атрибута maxInvalidPasswordAttempts для Int32.MaxValue работает так, как я предложил в моем вопросе и как показано в фрагменте web.config ниже. Я использовал Reflector, чтобы посмотреть на реализацию SqlMembershipProvider и не могу понять, как отключить функцию блокировки учетной записи, поэтому я собираюсь принять это как решение.

Я не тестировал предложение полностью установить PasswordAttemptWindow, но не может быть установлено в 0 (должно быть положительное целое число, то есть не менее одной минуты), так что это не сработает без установки атрибута maxInvalidPasswordAttempts, достаточно высокого для предотвращения локаут в течение одной минуты.

<membership defaultProvider="SqlMembershipProvider"> 
    <providers> 
    <add name="SqlMembershipProvider" type="..." 
     maxInvalidPasswordAttempts="2147483647" 
     /> 
    </providers>