Compartir a través de


ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer Método

Definición

Actualiza la pregunta y respuesta de contraseña de un usuario del almacén de 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

Parámetros

username
String

Usuario para el que se va a cambiar la pregunta y respuesta de la contraseña.

password
String

Contraseña para el usuario especificado.

newPasswordQuestion
String

Nueva pregunta de contraseña para el usuario especificado.

newPasswordAnswer
String

Nueva respuesta a la contraseña para el usuario especificado.

Devoluciones

Es true si la actualización se realizó correctamente; en caso contrario, es false. También se devuelve un valor de false si la contraseña es incorrecta, si el usuario queda bloqueado o si el usuario no existe en el almacén de datos de Active Directory.

Excepciones

El administrador no ha asignado los campos de pregunta y respuesta de la contraseña a los atributos del esquema de Active Directory.

username está vacío o supera la longitud máxima del nombre de usuario (normalmente 256 caracteres).

o bien

username contiene comas.

o bien

El nombre de usuario está asignado al atributo userPrincipalName y el parámetro username contiene barras diagonales inversas.

o bien

password es cadena de longitud cero.

o bien

password supera la longitud máxima de contraseña (normalmente 128 caracteres).

o bien

newPasswordQuestion está vacío y el valor de la propiedad RequiresQuestionAndAnswer es true.

o bien

newPasswordQuestion tiene más de 256 caracteres.

o bien

newPasswordAnswer supera los 128 caracteres después de que se cifra la respuesta.

username es null.

O bien

password es null.

o bien

newPasswordQuestion es null y la propiedad RequiresQuestionAndAnswer es true.

o bien

newPasswordAnswer es null y la propiedad RequiresQuestionAndAnswer es true.

El elemento de configuración machineKey (Esquema de configuración de ASP.NET) indica una clave de cifrado de equipo generada automáticamente. Debe establecer explícitamente el atributo decryptionKey del elemento de configuración machineKey (Esquema de configuración de ASP.NET) para almacenar las respuestas de contraseña con ActiveDirectoryMembershipProvider.

Comentarios

La clase llama ActiveDirectoryMembershipUser al método para actualizar la pregunta de contraseña y responder a un usuario en el almacén de pertenencia a Active Directory.

Requerir una pregunta y respuesta de contraseña proporciona una capa adicional de seguridad al restablecer la contraseña de un usuario. Al crear un nombre de usuario, un usuario puede proporcionar una pregunta y una respuesta que se pueden usar más adelante para restablecer una contraseña olvidada. El ChangePasswordQuestionAndAnswer método actualiza la pregunta y respuesta de contraseña de un usuario de pertenencia a nuevos valores.

Para usar el ChangePasswordQuestionAndAnswer método , debe establecer estos atributos adicionales en el archivo de configuración de la aplicación:

  • requiresQuestionAndAnswer debe ser true.

  • attributeMapPasswordQuestion y attributeMapPasswordAnswer deben asignarse a atributos en el esquema de Active Directory.

Si no se cumplen los criterios anteriores, se produce una ProviderException excepción en la inicialización.

La ActiveDirectoryMembershipProvider instancia se conecta al almacén de datos de Active Directory con las credenciales proporcionadas en los username parámetros y password para validar la combinación de nombre de usuario y contraseña. La actualización real de la pregunta y la respuesta se realiza con las credenciales de conexión configuradas del proveedor.

Si se proporciona una contraseña incorrecta al ChangePasswordQuestionAndAnswer método , el servidor de directorios incrementará los contadores que realizan un seguimiento de los intentos de contraseña no válidos. Esto puede dar lugar a que el usuario esté bloqueado e incapaz de iniciar sesión hasta que se borre el estado del bloqueo mediante una llamada al UnlockUser método o la duración bloqueada especificada en el directorio.

Si la actualización a la pregunta y la respuesta se realiza correctamente y la EnablePasswordReset propiedad es true, se restablecen los contadores de seguimiento de respuestas de contraseña incorrectas del usuario.

La respuesta de contraseña se cifra mediante el EncryptPassword método antes de almacenarla en el almacén de datos de Active Directory. La clave de cifrado y el algoritmo se especifican mediante el elemento de configuración machineKey Element (ASP.NET Settings Schema). Se debe especificar el atributo de descifrado del elemento machineKey Element (ASP.NET Settings Schema), la ActiveDirectoryMembershipProvider clase no admite claves de cifrado generadas automáticamente.

La longitud máxima de la pregunta de contraseña es de 256 caracteres. La longitud máxima de la respuesta de contraseña es de 128 caracteres.

Los espacios iniciales y finales se recortan de todos los valores de parámetro, excepto para password.

El proveedor busca la instancia de usuario que se va a actualizar realizando una búsqueda de subárbol para el nombre de usuario a partir del punto de búsqueda especificado en la cadena de conexión. Consulte el ActiveDirectoryMembershipProvider tema de la clase para obtener más información sobre las cadenas de conexión.

Se aplica a

Consulte también