ldap_bind_sW-Funktion (winldap.h)

Die ldap_bind_s-Funktion authentifiziert einen Client synchron beim LDAP-Server.

Syntax

WINLDAPAPI ULONG LDAPAPI ldap_bind_sW(
  [in] LDAP   *ld,
  [in] PWSTR  dn,
  [in] PWCHAR cred,
  [in] ULONG  method
);

Parameter

[in] ld

Das Sitzungshandle.

[in] dn

Zeiger auf eine mit Null beendete Zeichenfolge, die den distinguished Name des Eintrags enthält, der zum Binden verwendet wird. Dies kann ein DN, ein UPN, ein WinNT-Stilbenutzername oder ein anderer Name sein, den der Verzeichnisserver als Bezeichner akzeptiert.

[in] cred

Zeigen Sie auf eine mit Null beendete Zeichenfolge, die die Anmeldeinformationen enthält, mit denen authentifiziert werden soll. Beliebige Anmeldeinformationen können mithilfe dieses Parameters übergeben werden. Das Format und der Inhalt der Anmeldeinformationen hängen von der Einstellung der Methode Parameter ab. Weitere Informationen finden Sie in den Hinweisen.

[in] method

Gibt die zu verwendende Authentifizierungsmethode an. Weitere Informationen und eine Auflistung gültiger asynchroner Authentifizierungsmethoden finden Sie im Abschnitt "Hinweise". Weitere Informationen und eine Beschreibung der gültigen asynchronen Authentifizierungsmethode finden Sie unter ldap_bind.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert LDAP_SUCCESS.

Wenn die Funktion fehlschlägt, wird ein Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Rückgabewerte.

Bemerkungen

Die Einführung der Benutzerkontensteuerung in Windows Server 2008 und Windows Vista hat eine sehr wichtige Folge hinsichtlich der Änderung oder Ergänzungen in LDAP. Wenn ein Benutzer mit einem eingeschränkten UAC-Administratortoken bei einem DC angemeldet ist und NULL- Anmeldeinformationen, änderungen oder Ergänzungen des Verzeichnisses oder eines Schemaänderungsvorgangs verwendet wird, schlägt fehl. Dazu gehören DirSync-Suchvorgänge, das Abrufen der SACL aus dem ntSecurityDescriptor Attribut eines Objekts bei Verwendung von SecurityDescriptorFlags und vielen anderen Vorgängen.

Dies schlägt alle mit unzureichenden Zugriffsrechten fehl.

Wenn die Benutzerkontensteuerung wirksam ist, wenn sich ein Administrator bei einem DC anmeldet, erhält der Administrator in der Anmeldesitzung ein eingeschränktes Token. Wenn er dann ldap_bind_s mit NULL- Anmeldeinformationen verwendet, treten Vorgänge, die Änderungen oder Ergänzungen vornehmen, fehl.

Die Implementierung von ldap_bind_s unterstützt die in der folgenden Tabelle aufgeführten Authentifizierungsmethoden. Das Aufrufen ldap_bind_s mit der Option LDAP_AUTH_SIMPLE entspricht dem Aufrufen von ldap_simple_bind_s.

Methode Beschreibung Berechtigungsnachweis
LDAP_AUTH_SIMPLE Authentifizierung mit einem Nur-Text-Kennwort. Eine Zeichenfolge, die das Benutzerkennwort enthält.
LDAP_AUTH_DIGEST Digestauthentifizierungspaket. Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_DPA Verteilte Kennwortauthentifizierung. Wird vom Microsoft-Mitgliedschaftssystem verwendet. Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_MSN Microsoft-Netzwerkauthentifizierungsdienst. Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_NEGOTIATE Generische Sicherheitsdienste (GSS) (Snego). Stellt keine Authentifizierung bereit, sondern wählt stattdessen die am besten geeignete Authentifizierungsmethode aus einer Liste der verfügbaren Dienste aus und übergibt alle Authentifizierungsdaten an diesen Dienst. Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den cred Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY- oder SEC_WINNT_AUTH_IDENTITY_EX Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_NTLM NT LAN-Manager Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den cred Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY- oder SEC_WINNT_AUTH_IDENTITY_EX Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_SICILY Deckt die Paketverhandlung auf MSN-Server ab. Um sich als aktueller Benutzer anzumelden, legen Sie den dn und cred Parameter auf NULL-fest. Um sich als anderer Benutzer anzumelden, legen Sie den dn Parameter auf NULL- und den Parameter auf einen Zeiger auf eine SEC_WINNT_AUTH_IDENTITY Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest.
LDAP_AUTH_SSPI Obsolet. Aus Gründen der Abwärtskompatibilität enthalten. Wenn Sie diese Konstante verwenden, wird der GSS-Aushandlungsdienst (Snego) ausgewählt. Identisch mit LDAP_AUTH_NEGOTIATE.
 

Verwenden Sie für die asynchrone Bindungsauthentifizierung LDAP_AUTH_SIMPLE mit ldap_bind.

Der Bindungsvorgang identifiziert einen Client an den Verzeichnisserver, indem er einen distinguishierten Namen und einen bestimmten Typ von Authentifizierungsanmeldeinformationen, z. B. ein Kennwort, bereitstellt. Die genauen Anmeldeinformationen sind von der verwendeten Authentifizierungsmethode abhängig. Wenn Sie NULL- für die Anmeldeinformationen mit ldap_bind_s() (nicht einfach) übergeben, werden die aktuellen Benutzer- oder Dienstanmeldeinformationen verwendet. Wenn eine einfache Bindungsmethode (wie in ldap_simple_bind_s) angegeben wird, entspricht sie einem NULL- Nur-Text-Kennwort. Weitere Informationen finden Sie unter ldap_bind.

Beachten Sie, dass LDAP 2-Server eine Anwendung binden müssen, bevor Sie andere Vorgänge versuchen, die Authentifizierung erfordern.

Multithreading: Bindungsaufrufe sind unsicher, da sie für die gesamte Verbindung gelten. Verwenden Sie Vorsicht, wenn Threads Verbindungen freigeben und versuchen, die Bindungsvorgänge mit anderen Vorgängen zu threaden.

Hinweis Der Microsoft LDAP-Client verwendet für jedes Bindungsantwort-Roundtrip einen Standardtimeoutwert von 120 Sekunden (2 Minuten). Dieser Timeoutwert kann mithilfe der Option LDAP_OPT_TIMELIMIT Sitzung geändert werden. Andere Vorgänge verfügen nicht über ein Timeout, es sei denn, es wird ldap_set_optionverwendet.
 
Wenn alle Vorgänge im Sitzungshandle abgeschlossen sind, muss die Sitzung beendet werden, indem das LDAP- Sitzungshandle an die ldap_unbind-Funktion übergeben wird. Wenn der ldap_bind_s Anruf fehlschlägt, sollte der Sitzungshandle auch mit einem Aufruf von ldap_unbind freigegeben werden, wenn die Fehlerwiederherstellung nicht mehr erforderlich ist.

Hinweis

Der winldap.h-Header definiert ldap_bind_s als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows Vista
mindestens unterstützte Server- Windows Server 2008
Zielplattform- Fenster
Header- winldap.h
Library Wldap32.lib
DLL- Wldap32.dll

Siehe auch

Einrichten einer LDAP-Sitzung

Funktionen

Rückgabewerte

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind