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
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
[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
[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 |