Compartir a través de


ActiveDirectoryMembershipProvider.ValidateUser(String, String) Método

Definición

Comprueba que el nombre de usuario y contraseña especificados existen en el almacén de datos de Active Directory.

public:
 override bool ValidateUser(System::String ^ username, System::String ^ password);
public override bool ValidateUser (string username, string password);
override this.ValidateUser : string * string -> bool
Public Overrides Function ValidateUser (username As String, password As String) As Boolean

Parámetros

username
String

Nombre del usuario que se validará.

password
String

Contraseña del usuario especificado.

Devoluciones

true si los parámetros username y password especificados son válidos; en caso contrario, false. Si el usuario especificado no existe en el almacén de datos de Active Directory, el método ValidateUser(String, String) devuelve false.

Excepciones

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

Comentarios

La clase llama Membership a este método para validar las credenciales de usuario en el almacén de datos de Active Directory.

Si la EnablePasswordReset propiedad es true y las credenciales proporcionadas son válidas, se restablecen los contadores de seguimiento del usuario para obtener respuestas de contraseña incorrectas.

El ValidateUser método puede devolver false cuando se proporcionan las credenciales correctas, en las siguientes circunstancias:

  1. El servidor de directorios bloqueó la cuenta de usuario debido a demasiados intentos de inicio de sesión erróneos. El usuario no podrá iniciar sesión hasta que pase la duración del bloqueo del directorio.

  2. Si la EnablePasswordReset propiedad es true, la cuenta de usuario se bloqueará si el usuario proporcionó una respuesta de contraseña incorrecta demasiadas veces. La cuenta del usuario se desbloqueará una vez transcurrido el tiempo especificado en la PasswordAnswerAttemptLockoutDuration propiedad.

  3. El usuario debe existir en el contenedor especificado en la cadena de conexión. Las credenciales válidas se proporcionan para una cuenta de usuario ubicada en un contenedor diferente o en un dominio diferente. El usuario debe existir en el contenedor especificado en la cadena de conexión.

Al validar un usuario, el proveedor valida las credenciales mediante la conexión al almacén de datos de Active Directory mediante el nombre de usuario y la contraseña especificados, no las credenciales configuradas en el archivo de configuración de la aplicación.

Sin embargo, la ActiveDirectoryMembershipProvider instancia se conectará al directorio mediante las credenciales configuradas por los siguientes motivos.

  • Para confirmar que un usuario existe dentro del ámbito de búsqueda, determinado por la cadena de conexión de la ActiveDirectoryMembershipProvider instancia. El proveedor usa una búsqueda de subárbol que comienza en el punto de búsqueda especificado en la cadena de conexión para determinar si existe un usuario. El usuario debe existir en el contenedor especificado. No se validarán las credenciales válidas fuera del contenedor especificado de la cadena de conexión. Consulte el ActiveDirectoryMembershipProvider tema de la clase para obtener más información sobre las cadenas de conexión.

  • Si la EnablePasswordReset propiedad es true, la ActiveDirectoryMembershipProvider instancia usará las credenciales configuradas para cargar la instancia de usuario para comprobar si el usuario se ha bloqueado porque ha realizado demasiados intentos erróneos de cambiar la respuesta de contraseña.

Importante

La conexión a un controlador de dominio de Active Directory con la cuenta "Invitado" habilitada es una amenaza de seguridad potencial. Todos los intentos de validación realizados en un controlador de dominio de Active Directory con la cuenta "Invitado" habilitada se realizarán correctamente. Para mejorar la seguridad al usar un controlador de dominio de Active Directory, debe deshabilitar la cuenta "Invitado" en el controlador de dominio.

La ActiveDirectoryMembershipProvider instancia intentará un enlace simultáneo con Active Directory cuando se cumpla una de las condiciones siguientes:

Además, para que se realice un enlace simultáneo, se deben cumplir las siguientes condiciones:

  • El servidor de directorios debe ejecutarse en Windows Server 2003.

  • El sistema operativo del servidor web que ejecuta la ActiveDirectoryMembershipProvider instancia debe admitir enlaces simultáneos (por ejemplo, Windows Server 2003).

Cuando se usa un enlace simultáneo, la última fecha de inicio de sesión del usuario no se actualiza en el directorio; por lo tanto, no se puede confiar en la LastLoginDate propiedad .

Los espacios iniciales y finales se recortan del username parámetro .

Se aplica a

Consulte también