ActiveDirectoryMembershipProvider.ResetPassword(String, String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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
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 recomendados) 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
attributeMapPasswordQuestion
atributos ,attributeMapPasswordAnswer
,attributeMapFailedPasswordAnswerCount
,attributeMapFailedPasswordAnswerTime
yattributeMapFailedPasswordAnswerLockedTime
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 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 .