Поделиться через


ActiveDirectoryMembershipProvider.ResetPassword(String, String) Метод

Определение

Сбрасывает пароль пользователя и устанавливает новый, автоматически сгенерированный пароль.

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

Параметры

username
String

Пользователь, чей пароль требуется сбросить.

passwordAnswer
String

Контрольный ответ для пароля заданного пользователя.

Возвращаемое значение

Новый пароль заданного пользователя.

Исключения

Метод ResetPassword(String, String) вызывается до инициализации экземпляра ActiveDirectoryMembershipProvider.

Значение свойства EnablePasswordReset равно false.

passwordAnswer имеет значение null.

-или-

username имеет значение null.

После удаления пробелов параметр passwordAnswer пустой.

-или-

Длина параметра passwordAnswer превышает 128 символов.

-или-

Параметр username пустой, или превышает максимальную разрешенную длину имени пользователя (обычно 256 символов).

-или-

username содержит запятые.

-или-

Имя пользователя отображается на атрибут userPrincipalName, но параметр username содержит обратные косые черты.

Пользователь заблокирован из-за слишком большого числа ошибок при подключении или восстановлении запроса-ответа пароля.

-или-

Параметр passwordAnswer не соответствует хранимому ответу пароля.

Пользователь, указанный в параметре username, отсутствует в хранилище данных Active Directory.

-или-

Сгенерированный пароль не проходит пользователь обработчик проверки.

-или-

Сгенерированный пароль не достаточно сложен для удовлетворения пользовательской политики паролей, установленной на сервере Active Directory.

-или-

Нельзя создать безопасное подключение к серверу Active Directory Application Mode для установки нового пароля.

Произошло необработанное исключение.

Комментарии

Метод вызывается классом Membership для сброса пароля пользователя в хранилище данных Active Directory до нового случайно созданного значения. Возвращается новый пароль.

Примечание

Случайный пароль, созданный методом ResetPassword , не гарантирует передачу регулярного выражения в свойстве PasswordStrengthRegularExpression . Однако случайный пароль будет соответствовать критериям, установленным свойствами MinRequiredPasswordLength и MinRequiredNonAlphanumericCharacters .

Если методу предоставлен неправильный ответ, внутренний счетчик, отслеживающий недопустимые попытки ответа паролем, увеличивается на единицу ResetPassword . Это может привести к тому, что пользователь не сможет войти в систему до тех пор, пока состояние блокировки не будет очищено вызовом UnlockUser метода . Если указан правильный ответ на пароль, а пользователь в настоящее время не заблокирован, внутренний счетчик, отслеживающий недопустимые попытки ввода пароля, сбрасывается до нуля. Дополнительные сведения см. в описаниях свойств MaxInvalidPasswordAttempts и PasswordAttemptWindow.

Начальный и конечный пробелы обрезаются из всех значений параметров.

Метод можно вызвать ResetPassword напрямую, сначала получив ссылку ActiveDirectoryMembershipProvider на экземпляр из Membership.Provider свойства .

Поставщик использует поиск по поддереву, начиная с точки поиска, указанной в строке подключения. ActiveDirectoryMembershipProvider Дополнительные сведения о строках подключения см. в разделе о классах.

Чтобы задать пароли на сервере Active Directory, connectionProtection атрибуту необходимо задать значение SignAndSeal.

При использовании сервера ADAM атрибуту можно задать значение None, но только в том случае, connectionProtection если вы явно настроили сервер ADAM, чтобы разрешить изменение пароля через незащищенные подключения.

Важно!

Вы не можете сбросить пароли, если учетные данные, используемые для подключения к серверу Active Directory, не имеют прав администратора домена (не рекомендуется) или права на доступ "сброс пароля".

Чтобы сбросить пароль, должны выполняться все следующие условия:

  • Для свойства EnablePasswordReset должно быть установлено значение true.

  • Схема Active Directory должна быть изменена таким образом, чтобы она содержала атрибуты для хранения вопросов и ответов на пароль, а также три поля отслеживания для изменений ответов паролей.

  • Атрибуты attributeMapPasswordQuestion, attributeMapPasswordAnswer, attributeMapFailedPasswordAnswerCount, attributeMapFailedPasswordAnswerTimeи attributeMapFailedPasswordAnswerLockedTime должны быть заданы в файле конфигурации приложения.

  • Для свойства RequiresQuestionAndAnswer должно быть установлено значение true.

  • Контекст безопасности для подключения к хранилищу данных Active Directory (учетная запись процесса или явные учетные данные) должен иметь достаточные привилегии для смены паролей. Учетные данные, используемые для подключения к серверу Active Directory, имеют права администратора домена (не рекомендуется) или права доступа "сброс пароля".

Примечание

Политики безопасности, заданные на сервере Active Directory, могут сделать невозможным ResetPassword для метода создание пароля, удовлетворяющего политикам. Реализация GeneratePassword метода по умолчанию создает пароли, удовлетворяющие политикам паролей по умолчанию на контроллерах домена под управлением Windows Server 2003 с пакетом обновления 1 (SP1). Если пароль не удается сбросить из-за политик безопасности на сервере Active Directory, возникает исключение ProviderException .

Применяется к

См. также раздел