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

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

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

Boolean

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

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

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

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

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

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