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 is null и RequiresQuestionAndAnswer свойство true.

–или–

newPasswordAnswer is null и RequiresQuestionAndAnswer свойство true.

Элемент конфигурации machineKey (ASP.NET settings Schema) указывает автоматически созданный ключ шифрования компьютера. Для хранения ответов на пароль необходимо ActiveDirectoryMembershipProviderявно задать decryptionKey атрибут элемента machineKey (ASP.NET Settings Schema).

Метод 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 (ASP.NET Settings Schema). Атрибут расшифровки элемента machineKey (ASP.NET Settings Schema) должен быть указан, ActiveDirectoryMembershipProvider класс не поддерживает автоматически созданные ключи шифрования.

Максимальная длина вопроса пароля составляет 256 символов. Максимальная длина ответа на пароль составляет 128 символов.

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

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

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

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