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 Дополнительные сведения о строках подключения см. в разделе о классах.

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

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