Partager via


ldap_open, fonction (winldap.h)

[ldap_open est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise ; toutefois, il n’est pas recommandé. Utilisez plutôt ldap_init.]

La fonction ldap_open crée et initialise un bloc de connexion, puis ouvre la connexion à un serveur LDAP.

Syntaxe

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

Paramètres

[in] HostName

Pointeur vers une chaîne terminée par null. Un nom de domaine, une liste de noms d’hôtes ou des chaînes en pointillés qui représentent l’adresse IP des hôtes de serveur LDAP. Utilisez un espace unique pour séparer les noms d’hôtes dans la liste. Chaque nom d’hôte de la liste peut être suivi d’un numéro de port. Le numéro de port facultatif est séparé de l’hôte lui-même par un signe deux-points (:). L’exécution LDAP tente la connexion avec les hôtes dans l’ordre indiqué, s’arrêtant lorsqu’une connexion réussie est établie. N’oubliez pas que seule ldap_open tente d’établir la connexion avant de revenir à l’appelant. La fonction ldap_init ne se connecte pas au serveur LDAP.

[in] PortNumber

Contient le numéro de port TCP auquel se connecter. Le port LDAP par défaut, 389, peut être obtenu en fournissant la constante LDAP_PORT. Si un nom d’hôte inclut un numéro de port, ce paramètre est ignoré.

Valeur retournée

Si la fonction réussit, elle retourne un handle de session, sous la forme d’un pointeur vers une structure de données LDAP. Libérez le handle de session, lorsqu’il n’est plus nécessaire, avec un appel à ldap_unbind.

Si la fonction échoue, elle retourne NULL. Utilisez la fonction LdapGetLastError pour récupérer le code d’erreur.

Remarques

Appelez ldap_open pour créer un bloc de connexion à un serveur LDAP. Le hostName peut être NULL , auquel cas l’exécution tente de trouver le serveur LDAP par défaut. Les noms d’hôte sont essayés dans l’ordre indiqué, en arrêtant avec la première connexion réussie. Pour les serveurs Active Directory, la fonction DsGetDcName peut être utilisée pour obtenir le nom du serveur, qui peut ensuite être passé en tant que paramètre HostName au lieu d’utiliser NULL.

Si hostName a été défini sur NULL ou le nom de domaine, la reconnexion automatique s’applique. Si le contrôleur de domaine connecté cesse de fonctionner pour une raison quelconque pendant la durée de vie de la connexion, LDAP se reconnecte automatiquement à un autre contrôleur de domaine dans le domaine spécifié. Ce comportement peut être désactivé ou activé à l’aide de l’option LDAP_OPT_AUTO_RECONNECT session, qui est activée par défaut.

Le serveur LDAP par défaut est une option spécifique à Microsoft lorsque vous utilisez LDAP_OPT_HOST_NAME. Cette option spécifie le nom d’hôte du serveur LDAP par défaut et retourne le nom d’hôte du serveur en Unicode ou ANSI, sous réserve de l’utilisation de ldap_get_optionW ou de ldap_get_optionA, respectivement.

Si un numéro de port de catalogue global est passé à ldap_open comme argument, le nom d’hôte transmis pour ce numéro de port doit être le nom de la forêt pour l’appel sous-jacent à DsGetDcName() pour trouver correctement le gc dans l’entreprise.

La fonction ldap_open alloue une structure de données LDAP pour conserver les données d’état de la session et retourne un handle à cette structure. Passez ce handle aux appels de fonction LDAP suivants au cours de la session.

Multithreading : les appels à ldap_open sont thread-safe.

Notezldap_open est fortement déconseillé par la RFC LDAP actuelle, car elle ouvre immédiatement une session au contrôleur de domaine sans donner à l’application appelante la possibilité de configurer des options de session, par exemple (et surtout) des options de session liées à la sécurité. Les utilisateurs sont encouragés à utiliser ldap_init comme méthode par défaut pour initialiser une session LDAP.
 

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête winldap.h
Bibliothèque Wldap32.lib
DLL Wldap32.dll

Voir aussi

Fonctions

LdapGetLastError

cldap_open

ldap_init

ldap_unbind