ActiveDirectoryMembershipProvider.ResetPassword(String, String) Método

Definición

Restablece la contraseña de un usuario a una nueva contraseña generada automáticamente.

public:
 override System::String ^ ResetPassword(System::String ^ username, System::String ^ passwordAnswer);
public override string ResetPassword (string username, string passwordAnswer);
override this.ResetPassword : string * string -> string
Public Overrides Function ResetPassword (username As String, passwordAnswer As String) As String

Parámetros

username
String

Usuario para el que se va a restablecer la contraseña.

passwordAnswer
String

Respuesta de contraseña del usuario especificado.

Devoluciones

String

Nueva contraseña del usuario especificado.

Excepciones

Se llama al método ResetPassword(String, String) antes de que se inicializa la instancia de ActiveDirectoryMembershipProvider.

El valor de la propiedad EnablePasswordReset es false.

passwordAnswer es null.

O bien username es null.

passwordAnswer está vacío después de recortar o bien passwordAnswer tiene más de 128 caracteres.

o bien username está vacío o supera la longitud máxima permitida para nombres de usuario (normalmente 256 caracteres).

o bien username contiene comas.

o bien El nombre de usuario está asignado a userPrincipalName pero el parámetro username contiene barras diagonales inversas.

Se ha bloqueado el usuario porque ha habido demasiados intentos de iniciar la sesión incorrectos o demasiados intentos de restablecimiento de respuesta de contraseña.

o bien passwordAnswer no coincide con la respuesta de contraseña almacenada.

El usuario especificado en username no existe en el almacén de datos de Active Directory.

o bien Una contraseña generada no pasa un controlador de validación personalizado.

o bien La contraseña generada no es bastante compleja para satisfacer las directivas de contraseña personalizadas establecidas en el servidor Active Directory.

o bien No se puede realizar una conexión segura con un servidor Active Directory Application Mode para establecer la nueva contraseña.

Se produjo una excepción no controlada.

Comentarios

La clase llama Membership al método para restablecer la contraseña de un usuario del almacén de datos de Active Directory a un nuevo valor generado aleatoriamente. Se devuelve la nueva contraseña.

Nota

No se garantiza que la contraseña aleatoria creada por el ResetPassword método pase la expresión regular en la PasswordStrengthRegularExpression propiedad . Sin embargo, la contraseña aleatoria cumplirá los criterios establecidos por las MinRequiredPasswordLength propiedades y MinRequiredNonAlphanumericCharacters .

Si se proporciona una respuesta incorrecta al ResetPassword método , el contador interno que realiza un seguimiento de los intentos de respuesta de contraseña no válidos se incrementa en uno. Esto puede provocar que el usuario no pueda iniciar sesión hasta que se borre el estado del bloqueo mediante una llamada al UnlockUser método . Si se proporciona la respuesta de contraseña correcta y el usuario no está bloqueado actualmente, el contador interno que realiza un seguimiento de los intentos de contraseña no válidos se restablece a cero. Para más información, vea las propiedades MaxInvalidPasswordAttempts y PasswordAttemptWindow.

Los espacios iniciales y finales se recortan de todos los valores de parámetro.

Puede llamar al ResetPassword método directamente obteniendo primero una referencia a la ActiveDirectoryMembershipProvider instancia de desde la Membership.Provider propiedad .

El proveedor usa una búsqueda de subárbol que comienza en el punto de búsqueda especificado en la cadena de conexión. Consulte el tema de la ActiveDirectoryMembershipProvider clase para obtener más información sobre las cadenas de conexión.

Para establecer contraseñas en un servidor de Active Directory, el connectionProtection atributo debe establecerse SignAndSealen .

Cuando se usa un servidor ADAM, el connectionProtection atributo se puede establecer Noneen , pero solo si configura explícitamente el servidor ADAM para permitir cambios de contraseña en conexiones no seguras.

Importante

No se pueden restablecer contraseñas a menos que las credenciales usadas para conectarse al servidor de Active Directory tengan derechos de administrador de dominio (no recomendado) o el derecho de acceso "restablecer contraseña".

Para restablecer una contraseña, todas las condiciones siguientes deben cumplirse:

  • La propiedad EnablePasswordReset debe establecerse en true.

  • El esquema de Active Directory debe modificarse para contener atributos para almacenar la pregunta y respuesta de la contraseña, y los tres campos de seguimiento de los cambios de respuesta de contraseña.

  • Los attributeMapPasswordQuestionatributos , attributeMapPasswordAnswer, attributeMapFailedPasswordAnswerCount, attributeMapFailedPasswordAnswerTimey attributeMapFailedPasswordAnswerLockedTime deben establecerse en el archivo de configuración de la aplicación.

  • La propiedad RequiresQuestionAndAnswer debe establecerse en true.

  • El contexto de seguridad para conectarse al almacén de datos de Active Directory (ya sea la cuenta de proceso o las credenciales explícitas) debe tener privilegios suficientes para cambiar las contraseñas. Las credenciales usadas para conectarse al servidor de Active Directory tienen derechos de administrador de dominio (no recomendado) o el derecho de acceso "restablecer contraseña".

Nota

Las directivas de seguridad establecidas en el servidor de Active Directory pueden hacer imposible que el ResetPassword método genere una contraseña que satisfaga las directivas. La implementación predeterminada del GeneratePassword método generará contraseñas que satisfagan las directivas de contraseña predeterminadas en los controladores de dominio que ejecutan Windows Server 2003 SP1. Si la contraseña no se puede restablecer debido a directivas de seguridad en el servidor de Active Directory, se produce una ProviderException excepción .

Se aplica a

Consulte también