Condividi tramite


Funzione DsBindWithSpnExA (ntdsapi.h)

La funzione DsBindWithSpnEx viene associata a un controller di dominio usando le credenziali specificate e un nome dell'entità servizio (SPN) specifico per l'autenticazione reciproca. Questa funzione è simile alla funzione DsBindWithSpn , ad eccezione di questa funzione, consente più opzioni di associazione con il parametro BindFlags.

Questa funzione viene fornita quando è necessario il controllo completo sull'autenticazione reciproca. Non usare questa funzione se si prevede che DsBind trovare automaticamente un server, perché i nomi SPN sono specifici del computer ed è improbabile che il nome SPN specificato corrisponda al server che DsBind trova automaticamente. Se si specifica un argomento NULLServicePrincipalName si ottiene un comportamento identico a DsBindWithCred.

Sintassi

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
);

Parametri

[in, optional] DomainControllerName

Puntatore a una stringa con terminazione Null contenente il nome DNS completo del dominio da associare. Per altre informazioni, vedere la descrizione DomainControllerName nell'argomento DsBind .

[in, optional] DnsDomainName

Puntatore a una stringa con terminazione Null contenente il nome DNS completo del dominio da associare. Per altre informazioni, vedere la descrizione DnsDomainName nell'argomento DsBind.

[in, optional] AuthIdentity

Contiene un valore RPC_AUTH_IDENTITY_HANDLE che rappresenta le credenziali da usare per l'associazione. Le

funzione DsMakePasswordCredentials viene usata per ottenere questo valore. Se questo parametro è NULL, vengono usate le credenziali del thread chiamante.

DsUnBind deve essere chiamato prima di liberare questo handle con la funzione DsFreePasswordCredentials.

[in, optional] ServicePrincipalName

Puntatore a una stringa con terminazione Null che specifica il nome dell'entità servizio da assegnare al client. Il passaggio di NULL in ServicePrincipalName equivale a una chiamata alla funzione DsBindWithCred.

[in, optional] BindFlags

Contiene un set di flag che definiscono il comportamento di questa funzione. Questo parametro può contenere zero o una combinazione dei valori elencati nell'elenco seguente.

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Fa sì che l'associazione usi il livello di rappresentazione del delegato. In questo modo, le operazioni che richiedono la delega, ad esempio DsAddSidHistory, avranno esito positivo. Se si specifica questo flag, DsBindWithSpnEx funziona come DsBindWithSpn.

Se questo flag non viene specificato, il binding userà il livello di rappresentazione. Per altre informazioni, vedere Livelli di rappresentazione.

La maggior parte delle operazioni non richiede il livello di rappresentazione del delegato, quindi questo flag deve essere specificato solo se assolutamente necessario. L'associazione a un server non autorizzato con il livello di rappresentazione delegato consentirà al server non autorizzato di connettersi a un server non autorizzato con le credenziali ed eseguire operazioni non intenzionali.

NTDSAPI_BIND_FIND_BINDING (2)

Riservato.

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory Lightweight Directory Services: Se questo flag è specificato, DsBindWithSpnEx forza l'uso dell'autenticazione Kerberos. Se non è possibile stabilire l'autenticazione Kerberos, DsBindWithSpnEx non tenterà di eseguire l'autenticazione con altri metodi.

[out] phDS

Indirizzo di un HANDLE valore che riceve l'handle di associazione. Per chiudere questo handle, passarlo alla funzione DsUnBind .

Valore restituito

Restituisce ERROR_SUCCESS in caso di esito positivo o di un codice di errore Windows o RPC in caso contrario. Nell'elenco seguente sono elencati i codici di errore comuni.

Osservazioni

Nota

L'intestazione ntdsapi.h definisce DsBindWithSpnEx come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista
server minimo supportato Windows Server 2008
piattaforma di destinazione Finestre
intestazione ntdsapi.h
libreria Ntdsapi.lib
dll Ntdsapi.dll

Vedere anche

controller di dominio e funzioni di gestione della replica

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

livelli di rappresentazione