Compartir a través de


función ldap_bind_sW (winldap.h)

La función ldap_bind_s autentica de forma sincrónica un cliente en el servidor LDAP.

Sintaxis

WINLDAPAPI ULONG LDAPAPI ldap_bind_sW(
  [in] LDAP   *ld,
  [in] PWSTR  dn,
  [in] PWCHAR cred,
  [in] ULONG  method
);

Parámetros

[in] ld

Identificador de sesión.

[in] dn

Puntero a una cadena terminada en null que contiene el nombre distintivo de la entrada utilizada para enlazar. Puede ser un DN, un UPN, un nombre de usuario de estilo WinNT u otro nombre que el servidor de directorios aceptará como identificador.

[in] cred

Puntero a una cadena terminada en NULL que contiene las credenciales con las que se va a autenticar. Las credenciales arbitrarias se pueden pasar mediante este parámetro. El formato y el contenido de las credenciales dependen del valor del método parámetro. Para obtener más información, vea Comentarios.

[in] method

Indica el método de autenticación que se va a usar. Para obtener más información y una lista de métodos de autenticación asincrónicos válidos, vea la sección Comentarios. Para obtener más información y una descripción del método de autenticación asincrónico válido, consulte ldap_bind.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es LDAP_SUCCESS.

Si se produce un error en la función, devuelve un código de error. Para obtener más información, vea valores devueltos.

Observaciones

La introducción del Control de cuentas de usuario en Windows Server 2008 y Windows Vista tiene una consecuencia muy importante con respecto a la realización de modificaciones o adiciones en LDAP. Cuando un usuario inicia sesión en un controlador de dominio con un token de administrador de UAC restringido y usa credenciales de NULL, cualquier modificación o adición al directorio, o cualquier operación de cambio de esquema, producirá un error. Esto incluye búsquedas de DirSync, recuperación de SACL desde el atributo ntSecurityDescriptor de un objeto cuando se usa SecurityDescriptorFlags y muchas otras operaciones.

Todos producirán un error con derechos de acceso insuficientes.

Si el control de cuentas de usuario está en vigor cuando un administrador inicia sesión en un controlador de dominio, el administrador obtendrá un token restringido en la sesión de inicio de sesión. Si usa ldap_bind_s con credenciales de NULL, se producirán errores en las operaciones que realicen modificaciones o adiciones.

La implementación de ldap_bind_s admite los métodos de autenticación enumerados en la tabla siguiente. Llamar a ldap_bind_s con la opción LDAP_AUTH_SIMPLE equivale a llamar a ldap_simple_bind_s.

Método Descripción Credencial
LDAP_AUTH_SIMPLE Autenticación con una contraseña de texto no cifrado. Cadena que contiene la contraseña de usuario.
LDAP_AUTH_DIGEST Paquete de autenticación implícita. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_DPA Autenticación de contraseña distribuida. Usado por El sistema de pertenencia a Microsoft. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_MSN Servicio de autenticación de red de Microsoft. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_NEGOTIATE Servicios de seguridad genéricos (GSS) (Snego). No proporciona autenticación, sino que elige el método de autenticación más adecuado de una lista de servicios disponibles y pasa todos los datos de autenticación a ese servicio. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY o SEC_WINNT_AUTH_IDENTITY_EX con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_NTLM NT LAN Manager Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY o SEC_WINNT_AUTH_IDENTITY_EX con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_SICILY Trata la negociación de paquetes en servidores MSN. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en null y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_SSPI Obsoleto. Se incluye para la compatibilidad con versiones anteriores. Con esta constante se selecciona el servicio de negociación GSS (Snego). Igual que LDAP_AUTH_NEGOTIATE.
 

Para la autenticación de enlace asincrónica, use LDAP_AUTH_SIMPLE con ldap_bind.

La operación de enlace identifica un cliente al servidor de directorios proporcionando un nombre distintivo y algún tipo de credencial de autenticación, como una contraseña. Las credenciales exactas dependen del método de autenticación usado. Si pasa NULL para las credenciales con ldap_bind_s() (no simple), se usarán las credenciales de usuario o servicio actuales. Si se especifica un método de enlace simple (como en ldap_simple_bind_s), equivale a un NULL contraseña de texto no cifrado. Para obtener más información, vea ldap_bind.

Tenga en cuenta que los servidores LDAP 2 requieren que una aplicación se enlace antes de intentar otras operaciones que requieran autenticación.

Multithreading: las llamadas de enlace no son seguras porque se aplican a la conexión en su conjunto. Tenga cuidado si los subprocesos comparten conexiones e intente subprocesar las operaciones de enlace con otras operaciones.

Nota El cliente LDAP de Microsoft usa un valor de tiempo de espera predeterminado de 120 segundos (2 minutos) para cada ida y vuelta de respuesta de enlace. Este valor de tiempo de espera se puede cambiar mediante la opción LDAP_OPT_TIMELIMIT sesión. Otras operaciones no tienen un tiempo de espera a menos que se especifique mediante ldap_set_option.
 
Cuando se completan todas las operaciones del identificador de sesión, la sesión debe finalizar pasando el identificador de sesión de LDAP a la función ldap_unbind. Además, si se produce un error en la llamada ldap_bind_s, el identificador de sesión debe liberarse con una llamada a ldap_unbind cuando ya no sea necesario para la recuperación de errores.

Nota

El encabezado winldap.h define ldap_bind_s como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows Vista
servidor mínimo admitido Windows Server 2008
de la plataforma de destino de Windows
encabezado de winldap.h
biblioteca de Wldap32.lib
DLL de Wldap32.dll

Consulte también

establecer una sesión LDAP

funciones de

valores devueltos

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind