Freigeben über


ldap_open-Funktion (winldap.h)

[ldap_open für die Verwendung in den Betriebssystemen verfügbar ist, die im Abschnitt "Anforderungen" angegeben sind. Dies wird jedoch nicht empfohlen. Verwenden Sie stattdessen ldap_init.]

Die ldap_open-Funktion erstellt und initialisiert einen Verbindungsblock und öffnet dann die Verbindung mit einem LDAP-Server.

Syntax

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

Parameter

[in] HostName

Ein Zeiger auf eine NULL-Zeichenfolge. Ein Domänenname, eine Liste von Hostnamen oder gepunktete Zeichenfolgen, die die IP-Adresse von LDAP-Serverhosts darstellen. Verwenden Sie einen einzelnen Leerraum, um die Hostnamen in der Liste zu trennen. Jedem Hostnamen in der Liste kann eine Portnummer folgen. Die optionale Portnummer wird durch einen Doppelpunkt (:)) vom Host selbst getrennt. Die LDAP-Laufzeit versucht, eine Verbindung mit den Hosts in der aufgeführten Reihenfolge herzustellen, und wird beendet, wenn eine erfolgreiche Verbindung hergestellt wird. Beachten Sie, dass nur ldap_open versucht, die Verbindung herzustellen, bevor Sie zum Aufrufer zurückkehren. Die Funktion ldap_init stellt keine Verbindung mit dem LDAP-Server her.

[in] PortNumber

Enthält die TCP-Portnummer, mit der eine Verbindung hergestellt werden soll. Der STANDARD-LDAP-Port 389 kann abgerufen werden, indem die Konstante LDAP_PORT angegeben wird. Wenn ein Hostname eine Portnummer enthält, wird dieser Parameter ignoriert.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie ein Sitzungshandle in Form eines Zeigers auf eine LDAP-Datenstruktur zurück. Befreien Sie das Sitzungshandle, wenn sie nicht mehr benötigt wird, mit einem Aufruf von ldap_unbind.

Wenn bei der Funktion ein Fehler auftritt, gibt sie NULL zurück. Verwenden Sie die LdapGetLastError-Funktion , um den Fehlercode abzurufen.

Hinweise

Rufen Sie ldap_open auf, um einen Verbindungsblock mit einem LDAP-Server zu erstellen. HostName kann NULL sein. In diesem Fall versucht die Laufzeit, den LDAP-Standardserver zu finden. Die Hostnamen werden in der aufgeführten Reihenfolge versucht und mit der ersten erfolgreichen Verbindung beendet. Für Active Directory-Server kann die DsGetDcName-Funktion verwendet werden, um den Namen des Servers abzurufen, der dann als HostName-Parameter übergeben werden kann, anstatt NULL zu verwenden.

Wenn hostName entweder auf NULL oder den Domänennamen festgelegt wurde, wird die automatische Erneute Verbindung angewendet. Wenn der verbundene DC während der Lebensdauer der Verbindung aus irgendeinem Grund nicht mehr funktioniert, stellt LDAP automatisch eine Verbindung mit einem anderen DC in der angegebenen Domäne her. Dieses Verhalten kann mithilfe der LDAP_OPT_AUTO_RECONNECT-Sitzungsoption deaktiviert oder aktiviert werden, die standardmäßig aktiviert ist.

Der LDAP-Standardserver ist eine Microsoft-spezifische Option, wenn Sie LDAP_OPT_HOST_NAME verwenden. Diese Option gibt den Hostnamen des LDAP-Standardservers an und gibt den Hostnamen des Servers in Unicode oder ANSI zurück, abhängig von der Verwendung von ldap_get_optionW bzw. ldap_get_optionA.

Wenn eine Portnummer des globalen Katalogs als eines der Argumente an ldap_open übergeben wird, muss der für diese Portnummer übergebene HostName der Name der Gesamtstruktur für den zugrunde liegenden Aufruf von DsGetDcName() sein, um die GC im Unternehmen ordnungsgemäß zu finden.

Die ldap_open-Funktion weist eine LDAP-Datenstruktur zu, um Zustandsdaten für die Sitzung zu verwalten, und gibt ein Handle an diese Struktur zurück. Übergeben Sie dieses Handle im Verlauf der Sitzung an nachfolgende LDAP-Funktionsaufrufe.

Multithreading: Aufrufe an ldap_open sind threadsicher.

Beachten Sieldap_open durch den aktuellen LDAP-RFC stark veraltet ist, da er sofort eine Sitzung für den Domänencontroller öffnet, ohne der aufrufenden Anwendung die Möglichkeit zu geben, Sitzungsoptionen zu konfigurieren, z. B. (und vor allem) sicherheitsbezogene Sitzungsoptionen. Benutzer werden empfohlen , ldap_init als bevorzugte Methode zum Initialisieren einer LDAP-Sitzung zu verwenden.
 

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile winldap.h
Bibliothek Wldap32.lib
DLL Wldap32.dll

Siehe auch

Funktionen

LdapGetLastError

cldap_open

ldap_init

ldap_unbind