Condividi tramite


funzione ldap_open (winldap.h)

[ldap_open è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti; tuttavia, non è consigliabile. Usare invece ldap_init.]

La funzione ldap_open crea e inizializza un blocco di connessione, quindi apre la connessione a un server LDAP.

Sintassi

WINLDAPAPI LDAP *LDAPAPI ldap_open(
  [in] PSTR  HostName,
  [in] ULONG PortNumber
);

Parametri

[in] HostName

Puntatore a una stringa con terminazione Null. Un nome di dominio, un elenco di nomi host o stringhe punteggiate che rappresentano l'indirizzo IP degli host del server LDAP. Usare uno spazio singolo per separare i nomi host nell'elenco. Ogni nome host nell'elenco può essere seguito da un numero di porta. Il numero di porta facoltativo è separato dall'host stesso con due punti (:). Il runtime LDAP tenta di connettersi con gli host nell'ordine elencato, arrestandosi quando viene stabilita una connessione riuscita. Tenere presente che solo ldap_open tenta di stabilire la connessione prima di tornare al chiamante. La funzione ldap_init non si connette al server LDAP.

[in] PortNumber

Contiene il numero di porta TCP a cui connettersi. La porta LDAP predefinita, 389, può essere ottenuta fornendo la costante LDAP_PORT. Se un nome host include un numero di porta, questo parametro viene ignorato.

Valore restituito

Se la funzione ha esito positivo, restituisce un handle di sessione, sotto forma di puntatore a una struttura di dati LDAP. Liberare l'handle di sessione, quando non è più necessario, con una chiamata a ldap_unbind.

Se la funzione ha esito negativo, restituisce NULL. Usare la funzione LdapGetLastError per recuperare il codice di errore.

Commenti

Chiamare ldap_open per creare un blocco di connessione a un server LDAP. HostName può essere NULL nel qual caso il runtime tenta di trovare il server LDAP predefinito. I nomi host vengono tentati nell'ordine elencato, arrestandosi con la prima connessione riuscita. Per i server Active Directory, la funzione DsGetDcName può essere usata per ottenere il nome del server, che può quindi essere passato come parametro HostName invece di usare NULL.

Se hostName è stato impostato su NULL o sul nome di dominio, viene applicata la riconnessione automatica. Se il controller di dominio connesso smette di funzionare per qualche motivo durante la durata della connessione, LDAP si riconnetterà automaticamente a un altro controller di dominio nel dominio specificato. Questo comportamento può essere disattivato o attivato usando l'opzione di sessione LDAP_OPT_AUTO_RECONNECT , attivata per impostazione predefinita.

Il server LDAP predefinito è un'opzione specifica di Microsoft quando si usa LDAP_OPT_HOST_NAME. Questa opzione specifica il nome host del server LDAP predefinito e restituisce il nome host del server in Unicode o ANSI, in base all'uso rispettivamente di ldap_get_optionW o ldap_get_optionA.

Se un numero di porta del catalogo globale viene passato a ldap_open come uno degli argomenti, il nome host passato per tale numero di porta deve essere il nome della foresta per la chiamata sottostante a DsGetDcName() per trovare correttamente il GC nell'organizzazione.

La funzione ldap_open alloca una struttura di dati LDAP per mantenere i dati sullo stato per la sessione e restituisce un handle a questa struttura. Passare questo handle alle successive chiamate di funzione LDAP durante il corso della sessione.

Multithreading: le chiamate a ldap_open sono thread-safe.

Notaldap_open è fortemente deprecato dal RFC LDAP corrente perché apre immediatamente una sessione al controller di dominio senza concedere all'applicazione chiamante la possibilità di configurare eventuali opzioni di sessione, ad esempio (e soprattutto) opzioni di sessione correlate alla sicurezza. Gli utenti sono invitati a usare ldap_init come metodo preferito per inizializzare una sessione LDAP.
 

Requisiti

   
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

Funzioni

LdapGetLastError

cldap_open

ldap_init

ldap_unbind