Compartir a través de


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

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

Niveles de suplantación