ldap_bind_s-Funktion (winldap.h)
Die ldap_bind_s-Funktion authentifiziert einen Client synchron beim LDAP-Server.
Syntax
WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
[in] LDAP *ld,
[in] const PSTR dn,
[in] const PCHAR cred,
[in] ULONG method
);
Parameter
[in] ld
Das Sitzungshandle.
[in] dn
Zeiger auf eine NULL-endende Zeichenfolge, die den distinguished Name des zum Binden verwendeten Eintrags enthält. Dies kann ein DN, ein UPN, ein Benutzername im WinNT-Stil oder ein anderer Name sein, den der Verzeichnisserver als Bezeichner akzeptiert.
[in] cred
Zeiger auf eine NULL-endende Zeichenfolge, die die Anmeldeinformationen für die Authentifizierung enthält. Mit diesem Parameter können beliebige Anmeldeinformationen übergeben werden. Format und Inhalt der Anmeldeinformationen hängen von der Einstellung des Methodenparameters ab. Weitere Informationen finden Sie in den Hinweisen.
[in] method
Gibt die zu verwendende Authentifizierungsmethode an. Weitere Informationen und eine Liste der gültigen asynchronen 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 Ausführung der Funktion fehlschlägt, wird ein Fehlercode zurückgegeben. Weitere Informationen finden Sie unter Rückgabewerte.
Hinweise
Die Einführung der Benutzerkontensteuerung in Windows Server 2008 und Windows Vista hat eine sehr wichtige Folge im Hinblick auf Änderungen oder Ergänzungen in LDAP. Wenn ein Benutzer mit einem eingeschränkten UAC-Administratortoken bei einem DC angemeldet ist und NULL-Anmeldeinformationen verwendet, schlägt jede Änderung oder Ergänzung des Verzeichnisses oder jeder Schemaänderungsvorgang fehl. Dazu gehören DirSync-Suchvorgänge, das Abrufen der SACL aus dem ntSecurityDescriptor-Attribut eines Objekts bei Verwendung von SecurityDescriptorFlags und viele andere Vorgänge.
All dies schlägt mit unzureichenden Zugriffsrechten fehl.
Wenn die Benutzerkontensteuerung aktiviert 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, schlagen 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 ldap_simple_bind_s.
Methode | BESCHREIBUNG | Anmeldeinformationen |
---|---|---|
LDAP_AUTH_SIMPLE | Authentifizierung mit einem Klartextkennwort. | Eine Zeichenfolge, die das Benutzerkennwort enthält. |
LDAP_AUTH_DIGEST | Digestauthentifizierungspaket. | Um sich als aktueller Benutzer anzumelden, legen Sie die Parameter dn und cred 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-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 die Parameter dn und cred 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-Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest. |
LDAP_AUTH_MSN | Microsoft-Netzwerkauthentifizierungsdienst. | Um sich als aktueller Benutzer anzumelden, legen Sie die Parameter dn und cred 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-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 die Parameter dn und cred 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 die Parameter dn und cred 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 | Behandelt die Paketaushandlung mit MSN-Servern. | Um sich als aktueller Benutzer anzumelden, legen Sie die Parameter dn und cred 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-Struktur mit dem entsprechenden Benutzernamen, Domänennamen und Kennwort fest. |
LDAP_AUTH_SSPI | Veraltet. Aus Gründen der Abwärtskompatibilität enthalten. Mit dieser Konstanten 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 ein distinguished Name und eine Art von Authentifizierungsanmeldeinformationen, z. B. ein Kennwort, angegeben wird. Die genauen Anmeldeinformationen hängen von der verwendeten Authentifizierungsmethode ab. 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-Klartextkennwort. Weitere Informationen finden Sie unter ldap_bind.
Beachten Sie, dass LDAP 2-Server eine Bindung einer Anwendung erfordern, bevor Sie versuchen, andere Vorgänge auszuführen, die eine Authentifizierung erfordern.
Multithreading: Bindungsaufrufe sind unsicher, da sie für die gesamte Verbindung gelten. Gehen Sie vorsichtig vor, wenn Threads Verbindungen gemeinsam nutzen und versuchen, die Bindungsvorgänge mit anderen Vorgängen zu threaden.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Zielplattform | Windows |
Kopfzeile | winldap.h |
Bibliothek | Wldap32.lib |
DLL | Wldap32.dll |