ldap_bind_sW-Funktion (winldap.h)
Die ldap_bind_s-Funktion authentifiziert einen Client synchron beim LDAP-Server.
WINLDAPAPI ULONG LDAPAPI ldap_bind_sW(
[in] LDAP *ld,
[in] PWSTR dn,
[in] PWCHAR cred,
[in] ULONG method
);
[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.
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.
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 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.
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 |