ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обновляет запрос и ответ пароля пользователя членства в хранилище Active Directory.
public:
override bool ChangePasswordQuestionAndAnswer(System::String ^ username, System::String ^ password, System::String ^ newPasswordQuestion, System::String ^ newPasswordAnswer);
public override bool ChangePasswordQuestionAndAnswer (string username, string password, string newPasswordQuestion, string newPasswordAnswer);
override this.ChangePasswordQuestionAndAnswer : string * string * string * string -> bool
Public Overrides Function ChangePasswordQuestionAndAnswer (username As String, password As String, newPasswordQuestion As String, newPasswordAnswer As String) As Boolean
Параметры
- username
- String
Пользователь, для которого изменяется проверочный вопрос и ответ.
- password
- String
Пароль заданного пользователя.
- newPasswordQuestion
- String
Новый контрольный вопрос заданного пользователя.
- newPasswordAnswer
- String
Новый контрольный ответ заданного пользователя.
Возвращаемое значение
Значение true
, если обновление выполнено успешно; в противном случае значение false
. Значение false
также возвращается, если пароль неверен, пользователь заблокирован или пользователь отсутствует в хранилище данных Active Directory.
Исключения
Администратор не отобразил поля запроса-ответа пароля на атрибуты схемы Active Directory.
Параметр username
пустой, или превышает максимальную длину имени пользователя (обычно 256 символов).
-или-
username
содержит запятые.
-или-
Имя пользователя отображается на атрибут userPrincipalName
и параметр username
содержит обратные косые черты.
-или-
password
представляет собой строку нулевой длины.
-или-
Параметр password
превышает максимальную длину пароля (обычно 128 символов).
-или-
Параметр newPasswordQuestion
пустой и значение свойства RequiresQuestionAndAnswer равно true
.
-или-
Длина параметра newPasswordQuestion
превышает 256 символов.
-или-
Длина параметра newPasswordAnswer
после шифрования ответа превышает 128 символов.
username
имеет значение null
.
-или-
password
имеет значение null
.
-или-
Параметр newPasswordQuestion
равен null
и свойство RequiresQuestionAndAnswer равно true
.
-или-
Параметр newPasswordAnswer
равен null
и свойство RequiresQuestionAndAnswer равно true
.
Элемент конфигурации machineKey (схема параметров ASP.NET) указывает автоматически созданный ключ шифрования компьютера. Необходимо явно установить атрибут decryptionKey
элемента machineKey (схема параметров ASP.NET) для хранения ответов пароля с поставщиком ActiveDirectoryMembershipProvider.
Метод ChangePasswordQuestionAndAnswer(String, String, String, String) вызывается до инициализации экземпляра ActiveDirectoryMembershipProvider.
Комментарии
Метод вызывается классом ActiveDirectoryMembershipUser для обновления вопроса о пароле и ответа для пользователя в хранилище членства Active Directory.
Требование вопроса и ответа на пароль обеспечивает дополнительный уровень безопасности при сбросе пароля пользователя. При создании имени пользователя пользователь может задать вопрос и ответ, который впоследствии можно будет использовать для сброса забытого пароля. Метод ChangePasswordQuestionAndAnswer обновляет вопрос о пароле и ответ для пользователя членства новыми значениями.
Чтобы использовать ChangePasswordQuestionAndAnswer метод , необходимо задать следующие дополнительные атрибуты в файле конфигурации приложения:
Аргумент
requiresQuestionAndAnswer
должен иметь значениеtrue
.attributeMapPasswordQuestion
иattributeMapPasswordAnswer
должны быть сопоставлены с атрибутами в схеме Active Directory.
Если приведенные выше критерии не выполняются, ProviderException при инициализации возникает исключение .
Экземпляр ActiveDirectoryMembershipProvider подключается к хранилищу данных Active Directory с учетными данными, указанными username
в параметрах и password
, для проверки сочетания имени пользователя и пароля. Фактическое обновление вопроса и ответа выполняется с настроенными учетными данными подключения поставщика.
Если в метод указан ChangePasswordQuestionAndAnswer неверный пароль, сервер каталогов увеличивает счетчики, отслеживающие попытки ввода недопустимых паролей. Это может привести к тому, что пользователь будет заблокирован и не сможет войти в систему до тех пор, пока состояние блокировки не будет снято вызовом UnlockUser метода или пока не будет пройдена длительность блокировки, указанная в каталоге.
Если обновление вопроса и ответа выполнено успешно и EnablePasswordReset свойство имеет значение true
, счетчики отслеживания неправильных ответов паролей пользователя сбрасываются.
Ответ на пароль шифруется с помощью EncryptPassword метода , прежде чем он сохраняется в хранилище данных Active Directory. Ключ шифрования и алгоритм задаются элементом конфигурации machineKey Element (ASP.NET Settings Schema). Необходимо указать атрибут расшифровки в элементе machineKey (ASP.NET Settings Schema), класс ActiveDirectoryMembershipProvider не поддерживает автоматически создаваемые ключи шифрования.
Максимальная длина вопроса пароля составляет 256 символов. Максимальная длина ответа на пароль составляет 128 символов.
Начальный и конечный пробелы обрезаются из всех значений параметров, password
кроме .
Поставщик находит экземпляр пользователя для обновления, выполняя поиск имени пользователя в поддереве, начиная с точки поиска, указанной в строке подключения. ActiveDirectoryMembershipProvider Дополнительные сведения о строках подключения см. в разделе о классах.