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
пустой.
-или-
Длина параметра passwordAnswer
превышает 128 символов.
-или-
Параметр username
пустой, или превышает максимальную разрешенную длину имени пользователя (обычно 256 символов).
-или-
username
содержит запятые.
-или-
Имя пользователя отображается на атрибут userPrincipalName
, но параметр username
содержит обратные косые черты.
Пользователь заблокирован из-за слишком большого числа ошибок при подключении или восстановлении запроса-ответа пароля.
-или-
Параметр passwordAnswer
не соответствует хранимому ответу пароля.
Пользователь, указанный в параметре username
, отсутствует в хранилище данных Active Directory.
-или- Сгенерированный пароль не проходит пользователь обработчик проверки.
-или- Сгенерированный пароль не достаточно сложен для удовлетворения пользовательской политики паролей, установленной на сервере Active Directory.
-или- Нельзя создать безопасное подключение к серверу Active Directory Application Mode для установки нового пароля.
Произошло необработанное исключение.
Комментарии
Метод вызывается классом Membership для сброса пароля для пользователя в хранилище данных Active Directory до нового случайно созданного значения. Возвращается новый пароль.
Примечание
Случайный пароль, созданный методом ResetPassword , не гарантирует передачу регулярного выражения в PasswordStrengthRegularExpression свойство. Однако случайный пароль будет соответствовать критериям, установленным и MinRequiredNonAlphanumericCharacters свойствамMinRequiredPasswordLength.
Если методу предоставлен ResetPassword неправильный ответ, внутренний счетчик, который отслеживает недопустимые попытки ответа на пароль, увеличивается на один. Это может привести к тому, что пользователь не сможет войти в систему, пока состояние блокировки не будет очищено вызовом UnlockUser метода. Если указан правильный ответ на пароль и пользователь в данный момент не заблокирован, внутренний счетчик, который отслеживает недопустимые попытки пароля, сбрасывается до нуля. Дополнительные сведения см. в описаниях свойств MaxInvalidPasswordAttempts и PasswordAttemptWindow.
Начальные и конечные пробелы обрезаются из всех значений параметров.
Метод можно вызвать ResetPassword напрямую, сначала получив ссылку на ActiveDirectoryMembershipProvider экземпляр из Membership.Provider свойства.
Поставщик использует поиск поддерев, начиная с точки поиска, указанной в строке подключения. Дополнительные сведения о строках подключения см. в ActiveDirectoryMembershipProvider разделе класса.
Чтобы задать пароли на сервере Active Directory, connectionProtection
атрибут должен иметь значение SignAndSeal.
При использовании сервера ADAM атрибут можно задатьNone, но только в том случае, connectionProtection
если вы явно настроите сервер ADAM, чтобы разрешить изменение пароля через незащищенные подключения.
Важно!
Нельзя сбрасывать пароли, если учетные данные, используемые для подключения к серверу Active Directory, имеют права администратора домена (не рекомендуется) или права доступа "Сброс пароля".
Чтобы сбросить пароль, необходимо выполнить все указанные ниже условия.
Для свойства EnablePasswordReset должно быть установлено значение
true
.Схема Active Directory должна быть изменена, чтобы она содержала атрибуты для хранения вопроса и ответа на пароль, а также три поля отслеживания изменений ответа на пароль.
В
attributeMapPasswordQuestion
файле конфигурации приложения должны быть заданы атрибуты , иattributeMapFailedPasswordAnswerCount``attributeMapFailedPasswordAnswerTime``attributeMapFailedPasswordAnswerLockedTime
атрибуты.attributeMapPasswordAnswer
Для свойства RequiresQuestionAndAnswer должно быть установлено значение
true
.Контекст безопасности для подключения к хранилищу данных Active Directory (учетная запись процесса или явные учетные данные) должен иметь достаточные права для изменения паролей. Учетные данные, используемые для подключения к серверу Active Directory, имеют права администратора домена (не рекомендуется) или права доступа "Сброс пароля".
Примечание
Политики безопасности, заданные на сервере Active Directory, могут сделать невозможным создание ResetPassword пароля, удовлетворяющего политикам. Реализация GeneratePassword метода по умолчанию создаст пароли, удовлетворяющие политикам паролей по умолчанию на контроллерах домена под управлением Windows Server 2003 с пакетом обновления 1 (SP1). Если не удается сбросить пароль из-за политик безопасности на сервере Active Directory, ProviderException возникает исключение.