funzione ldap_bind_s (winldap.h)

La funzione ldap_bind_s autentica in modo sincrono un client al server LDAP.

Sintassi

WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
  [in] LDAP        *ld,
  [in] const PSTR  dn,
  [in] const PCHAR cred,
  [in] ULONG       method
);

Parametri

[in] ld

Handle di sessione.

[in] dn

Puntatore a una stringa con terminazione null contenente il nome distinto della voce usata per associare. Questo può essere un DN, un UPN, un nome utente di stile WinNT o un altro nome che il server di directory accetterà come identificatore.

[in] cred

Puntatore a una stringa con terminazione null contenente le credenziali con cui eseguire l'autenticazione. Le credenziali arbitrarie possono essere passate usando questo parametro. Il formato e il contenuto delle credenziali dipendono dall'impostazione del parametro del metodo . Per altre informazioni, vedere la sezione Osservazioni.

[in] method

Indica il metodo di autenticazione da usare. Per altre informazioni e un elenco di metodi di autenticazione asincroni validi, vedere la sezione Osservazioni. Per altre informazioni e una descrizione del metodo di autenticazione asincrona valido, vedere ldap_bind.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è LDAP_SUCCESS.

Se la funzione non viene completata, restituisce un codice di errore. Per altre informazioni, vedere Valori restituiti.

Commenti

L'introduzione di Controllo account utente in Windows Server 2008 e Windows Vista ha una conseguenza molto importante per quanto riguarda l'esecuzione di modifiche o aggiunte in LDAP. Quando un utente è connesso a un controller di dominio con un token amministratore dell'interfaccia utente limitato e usa credenziali NULL , qualsiasi modifica o aggiunta alla directory o qualsiasi operazione di modifica dello schema, avrà esito negativo. Sono incluse le ricerche DirSync, il recupero di SACL dall'attributo ntSecurityDescriptor di un oggetto durante l'uso di SecurityDescriptorFlags e molte altre operazioni.

Questi errori avranno esito negativo con diritti di accesso insufficienti.

Se il controllo account utente è effettivo quando un amministratore accede a un controller di dominio, l'amministratore otterrà un token limitato nella sessione di accesso. Se usa ldap_bind_s con credenziali NULL , le operazioni che apportano modifiche o aggiunte avranno esito negativo.

L'implementazione di ldap_bind_s supporta i metodi di autenticazione elencati nella tabella seguente. La chiamata ldap_bind_s con l'opzione LDAP_AUTH_SIMPLE equivale a chiamare ldap_simple_bind_s.

Metodo Descrizione Credenziale
LDAP_AUTH_SIMPLE Autenticazione con una password di testo non crittografato. Stringa contenente la password utente.
LDAP_AUTH_DIGEST Pacchetto di autenticazione del digest. Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_DPA Autenticazione password distribuita. Usato da Microsoft Membership System. Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_MSN Servizio autenticazione di rete Microsoft. Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_NEGOTIATE Servizi di sicurezza generici (GSS) (Snego). Non fornisce l'autenticazione, ma sceglie invece il metodo di autenticazione più appropriato da un elenco di servizi disponibili e passa tutti i dati di autenticazione a tale servizio. Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a un SEC_WINNT_AUTH_IDENTITYo SEC_WINNT_AUTH_IDENTITY_EX struttura con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_NTLM Gestione LAN NT Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a un SEC_WINNT_AUTH_IDENTITYo SEC_WINNT_AUTH_IDENTITY_EX struttura con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_SICILY Illustra la negoziazione dei pacchetti ai server MSN. Per accedere come utente corrente, impostare i parametri dn e cred su NULL. Per accedere come un altro utente, impostare il parametro dn su NULL e il parametro cred su un puntatore a una struttura SEC_WINNT_AUTH_IDENTITY con il nome utente, il nome di dominio e la password appropriati.
LDAP_AUTH_SSPI Obsoleta. Incluso per la compatibilità con le versioni precedenti. L'uso di questa costante seleziona il servizio di negoziazione GSS (Snego). Uguale a LDAP_AUTH_NEGOTIATE.
 

Per l'autenticazione di associazione asincrona, usare LDAP_AUTH_SIMPLE con ldap_bind.

L'operazione di associazione identifica un client nel server directory fornendo un nome distinto e un tipo di credenziali di autenticazione, ad esempio una password. Le credenziali esatte dipendono dal metodo di autenticazione usato. Se si passa NULL per le credenziali con ldap_bind_s() (non semplice), verranno usate le credenziali dell'utente o del servizio correnti. Se viene specificato un metodo di binding semplice (come in ldap_simple_bind_s), è equivalente a una password di testo non crittografato NULL . Per altre informazioni, vedere ldap_bind.

Tenere presente che i server LDAP 2 richiedono l'associazione di un'applicazione prima di tentare altre operazioni che richiedono l'autenticazione.

Multithreading: le chiamate di associazione non sono sicure perché si applicano alla connessione nel suo complesso. Prestare attenzione se i thread condividono le connessioni e provare a threadare le operazioni di associazione con altre operazioni.

Nota Il client LDAP Microsoft usa un valore di timeout predefinito di 120 secondi (2 minuti) per ogni round-response di associazione. Questo valore di timeout può essere modificato usando l'opzione sessione LDAP_OPT_TIMELIMIT . Altre operazioni non dispongono di un timeout a meno che non sia specificato l'uso di ldap_set_option.
 
Al termine di tutte le operazioni sull'handle di sessione, la sessione deve essere terminata passando l'handle di sessione LDAP alla funzione ldap_unbind . Inoltre, se la chiamata ldap_bind_s ha esito negativo, l'handle di sessione deve essere liberato con una chiamata a ldap_unbind quando non è più necessario per il ripristino degli errori.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione winldap.h
Libreria Wldap32.lib
DLL Wldap32.dll

Vedi anche

Definizione di una sessione LDAP

Funzioni

Valori restituiti

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind