Función DsBindWithSpnExA (ntdsapi.h)
La función DsBindWithSpnEx se enlaza a un controlador de dominio mediante las credenciales especificadas y un nombre de entidad de seguridad de servicio (SPN) específico para la autenticación mutua. Esta función es similar a la función DsBindWithSpn , excepto que esta función permite más opciones de enlace con el parámetro BindFlags .
Esta función se proporciona cuando se requiere un control completo sobre la autenticación mutua. No use esta función si espera que DsBind encuentre un servidor automáticamente, ya que los SPN son específicos del equipo y es poco probable que el SPN que proporcione coincida con el servidor que DsBind encuentra. Proporcionar un argumento ServicePrincipalNameNULL da como resultado un comportamiento idéntico a DsBindWithCred.
Sintaxis
NTDSAPI_POSTXP DWORD DsBindWithSpnExA(
[in, optional] LPCSTR DomainControllerName,
[in, optional] LPCSTR DnsDomainName,
[in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
[in, optional] LPCSTR ServicePrincipalName,
[in, optional] DWORD BindFlags,
[out] HANDLE *phDS
);
Parámetros
[in, optional] DomainControllerName
Puntero a una cadena terminada en null que contiene el nombre DNS completo del dominio que se va a enlazar. Para obtener más información, vea la descripción DomainControllerName en el tema DsBind .
[in, optional] DnsDomainName
Puntero a una cadena terminada en null que contiene el nombre DNS completo del dominio que se va a enlazar. Para obtener más información, consulte la descripción dnsDomainName en el tema DsBind .
[in, optional] AuthIdentity
Contiene un valor de RPC_AUTH_IDENTITY_HANDLE que representa las credenciales que se van a usar para el enlace. The
La función DsMakePasswordCredentials se usa para obtener este valor. Si este parámetro es NULL, se usan las credenciales del subproceso que realiza la llamada.
Se debe llamar a DsUnBind antes de liberar este identificador con la función DsFreePasswordCredentials.
[in, optional] ServicePrincipalName
Puntero a una cadena terminada en null que especifica el nombre de entidad de seguridad de servicio que se va a asignar al cliente. Pasar NULL en ServicePrincipalName equivale a una llamada a la función DsBindWithCred .
[in, optional] BindFlags
Contiene un conjunto de marcas que definen el comportamiento de esta función. Este parámetro puede contener cero o una combinación de los valores enumerados en la lista siguiente.
NTDSAPI_BIND_ALLOW_DELEGATION (1)
Hace que el enlace use el nivel de suplantación del delegado. Esto permite que las operaciones que requieran delegación, como DsAddSidHistory, se realicen correctamente. Especificar esta marca también hace que DsBindWithSpnEx funcione como DsBindWithSpn.
Si no se especifica esta marca, el enlace usará el nivel de suplantación de suplantación. Para obtener más información, vea Niveles de suplantación.
La mayoría de las operaciones no requieren el nivel de suplantación de delegado, por lo que esta marca solo debe especificarse si es absolutamente necesaria. El enlace a un servidor no autorizado con el nivel de suplantación del delegado permitirá que el servidor no autorizado se conecte a un servidor no malintencionado con sus credenciales y realice operaciones no deseadas.
NTDSAPI_BIND_FIND_BINDING (2)
Reservado.
NTDSAPI_BIND_FORCE_KERBEROS (4)
Active Directory Lightweight Directory Services: Si se especifica esta marca, DsBindWithSpnEx obliga a usar la autenticación Kerberos. Si no se puede establecer la autenticación Kerberos, DsBindWithSpnEx no intentará autenticarse con ningún otro método.
[out] phDS
Dirección de un valor HANDLE que recibe el identificador de enlace. Para cerrar este identificador, páselo a la función DsUnBind .
Valor devuelto
Devuelve ERROR_SUCCESS si se ejecuta correctamente o si un código de error de Windows o RPC de lo contrario. En la lista siguiente se enumeran los códigos de error comunes.
Comentarios
Nota
El encabezado ntdsapi.h define DsBindWithSpnEx 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 neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | ntdsapi.h |
Library | Ntdsapi.lib |
Archivo DLL | Ntdsapi.dll |
Consulte también
Funciones de administración de controlador de dominio y replicación