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 . Однако случайный пароль будет соответствовать критериям, установленным свойствами 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 .