Compartilhar via


Função DsBindWithSpnExA (ntdsapi.h)

A função DsBindWithSpnEx associa a um controlador de domínio usando as credenciais especificadas e um SPN (nome de entidade de serviço) específico para autenticação mútua. Essa função é semelhante à função DsBindWithSpn, exceto que essa função permite mais opções de associação com o parâmetro BindFlags.

Essa função é fornecida quando o controle completo é necessário sobre a autenticação mútua. Não use essa função se você espera que DsBind encontre um servidor para você, pois os SPNs são específicos do computador e é improvável que o SPN fornecido corresponda ao servidor que DsBind localiza para você. Fornecer um argumentoNULL ServicePrincipalName resulta em um comportamento idêntico a DsBindWithCred.

Sintaxe

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

Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome DNS totalmente qualificado do domínio a ser associado. Para obter mais informações, consulte a descrição do DomainControllerName no tópico DsBind.

[in, optional] DnsDomainName

Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome DNS totalmente qualificado do domínio a ser associado. Para obter mais informações, consulte a descrição DnsDomainName no tópico DsBind.

[in, optional] AuthIdentity

Contém um valor RPC_AUTH_IDENTITY_HANDLE que representa as credenciais a serem usadas para a associação. O

função DsMakePasswordCredentials é usada para obter esse valor. Se esse parâmetro for NULL, as credenciais do thread de chamada serão usadas.

DsUnBind deve ser chamado antes de liberar esse identificador com a função DsFreePasswordCredentials .

[in, optional] ServicePrincipalName

Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o Nome da Entidade de Serviço a ser atribuída ao cliente. Passar NULL em ServicePrincipalName é equivalente a uma chamada para a função de DsBindWithCred.

[in, optional] BindFlags

Contém um conjunto de sinalizadores que definem o comportamento dessa função. Esse parâmetro pode conter zero ou uma combinação dos valores listados na lista a seguir.

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Faz com que a associação use o nível de representação delegado. Isso permite que as operações que exigem delegação, como DsAddSidHistory, sejam bem-sucedidas. Especificar esse sinalizador também faz com que DsBindWithSpnEx operem como DsBindWithSpn.

Se esse sinalizador não for especificado, a associação usará o nível de representação de representação. Para obter mais informações, consulte níveis de representação.

A maioria das operações não exige o nível de representação delegado, portanto, esse sinalizador só deve ser especificado se absolutamente necessário. A associação a um servidor invasor com o nível de representação de delegado permitirá que o servidor invasor se conecte a um servidor não invasor com suas credenciais e execute operações não intencionais.

NTDSAPI_BIND_FIND_BINDING (2)

Reservado.

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory Lightweight Directory Services: Se esse sinalizador for especificado, DsBindWithSpnEx forçará a autenticação Kerberos a ser usada. Se a autenticação Kerberos não puder ser estabelecida, DsBindWithSpnEx não tentará autenticar com nenhum outro método.

[out] phDS

Endereço de um HANDLE valor que recebe o identificador de associação. Para fechar esse identificador, passe-o para a função DsUnBind.

Valor de retorno

Retorna ERROR_SUCCESS se tiver êxito ou um código de erro do Windows ou RPC, caso contrário. A lista a seguir lista códigos de erro comuns.

Observações

Nota

O cabeçalho ntdsapi.h define DsBindWithSpnEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows Vista
servidor com suporte mínimo Windows Server 2008
da Plataforma de Destino Windows
cabeçalho ntdsapi.h
biblioteca Ntdsapi.lib
de DLL Ntdsapi.dll

Consulte também

Funções de gerenciamento de replicação e controlador de domínio

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

níveis de representação