ActiveDirectoryMembershipProvider.ChangePasswordQuestionAndAnswer 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í.
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.
Se llama al método ChangePasswordQuestionAndAnswer(String, String, String, String) antes de que se inicializa la instancia de 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 sertrue
.attributeMapPasswordQuestion
yattributeMapPasswordAnswer
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.