DsBindWithSpnExA-Funktion (ntdsapi.h)

Die DsBindWithSpnEx-Funktion bindet an einen Domänencontroller unter Verwendung der angegebenen Anmeldeinformationen und eines bestimmten Dienstprinzipalnamens (Service Principal Name, SPN) für die gegenseitige Authentifizierung. Diese Funktion ähnelt der DsBindWithSpn-Funktion , mit der Ausnahme, dass diese Funktion mehr Bindungsoptionen mit dem BindFlags-Parameter zulässt.

Diese Funktion wird bereitgestellt, wenn eine vollständige Kontrolle über die gegenseitige Authentifizierung erforderlich ist. Verwenden Sie diese Funktion nicht, wenn Sie erwarten, dass DsBind einen Server für Sie findet, da SPNs computerspezifisch sind und es unwahrscheinlich ist, dass der von Ihnen bereitgestellte SPN mit dem Server übereinstimmt, den DsBind für Sie findet. Das Bereitstellen eines NULLServicePrincipalName-Arguments führt zu einem Verhalten, das mit DsBindWithCred identisch ist.

Syntax

NTDSAPI_POSTXP DWORD DsBindWithSpnExA(
  [in, optional] LPCSTR                   DomainControllerName,
  [in, optional] LPCSTR                   DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCSTR                   ServicePrincipalName,
  [in, optional] DWORD                    BindFlags,
  [out]          HANDLE                   *phDS
);

Parameter

[in, optional] DomainControllerName

Zeiger auf eine NULL-beendete Zeichenfolge, die den vollqualifizierten DNS-Namen der zu bindenden Domäne enthält. Weitere Informationen finden Sie in der DomainControllerName-Beschreibung im Thema DsBind .

[in, optional] DnsDomainName

Zeiger auf eine NULL-beendete Zeichenfolge, die den vollqualifizierten DNS-Namen der zu bindenden Domäne enthält. Weitere Informationen finden Sie in der Beschreibung DnsDomainName im Thema DsBind .

[in, optional] AuthIdentity

Enthält einen RPC_AUTH_IDENTITY_HANDLE Wert, der die Anmeldeinformationen darstellt, die für die Bindung verwendet werden sollen. The

Die DsMakePasswordCredentials-Funktion wird verwendet, um diesen Wert abzurufen. Wenn dieser Parameter NULL ist, werden die Anmeldeinformationen des aufrufenden Threads verwendet.

DsUnBind muss aufgerufen werden, bevor dieses Handle mit der DsFreePasswordCredentials-Funktion freigegeben wird.

[in, optional] ServicePrincipalName

Zeiger auf eine null-beendete Zeichenfolge, die den Dienstprinzipalnamen angibt, der dem Client zugewiesen werden soll. Das Übergeben von NULL in ServicePrincipalName entspricht einem Aufruf der DsBindWithCred-Funktion .

[in, optional] BindFlags

Enthält eine Reihe von Flags, die das Verhalten dieser Funktion definieren. Dieser Parameter kann null oder eine Kombination der in der folgenden Liste aufgeführten Werte enthalten.

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Bewirkt, dass die Bindung die Identitätswechselebene des Delegaten verwendet. Dadurch können Vorgänge, die eine Delegierung erfordern, wie z. B . DsAddSidHistory, erfolgreich sein. Die Angabe dieses Flags führt auch dazu , dass DsBindWithSpnEx wie DsBindWithSpn funktioniert.

Wenn dieses Flag nicht angegeben ist, verwendet die Bindung die Identitätswechselebene. Weitere Informationen finden Sie unter Identitätswechselebenen.

Für die meisten Vorgänge ist die Identitätswechselebene des Delegaten nicht erforderlich. Daher sollte dieses Flag nur angegeben werden, wenn dies unbedingt erforderlich ist. Die Bindung an einen nicht autorisierten Server mit der Identitätswechselebene des Delegaten ermöglicht es dem nicht autorisierten Server, mit Ihren Anmeldeinformationen eine Verbindung mit einem nicht nicht autorisierten Server herzustellen und unbeabsichtigte Vorgänge auszuführen.

NTDSAPI_BIND_FIND_BINDING (2)

Reserviert.

NTDSAPI_BIND_FORCE_KERBEROS (4)

Active Directory Lightweight Directory-Dienste: Wenn dieses Flag angegeben ist, erzwingt DsBindWithSpnEx die Verwendung der Kerberos-Authentifizierung. Wenn die Kerberos-Authentifizierung nicht eingerichtet werden kann, versucht DsBindWithSpnEx nicht, sich mit einer anderen Methode zu authentifizieren.

[out] phDS

Adresse eines HANDLE-Werts , der das Bindungshandle empfängt. Um dieses Handle zu schließen, übergeben Sie es an die DsUnBind-Funktion .

Rückgabewert

Gibt ERROR_SUCCESS zurück, wenn erfolgreich oder ein Windows- oder RPC-Fehlercode andernfalls. In der folgenden Liste sind häufige Fehlercodes aufgeführt.

Hinweise

Hinweis

Der ntdsapi.h-Header definiert DsBindWithSpnEx 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 nicht codierungsneutralem Code 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
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile ntdsapi.h
Bibliothek Ntdsapi.lib
DLL Ntdsapi.dll

Weitere Informationen

Domänencontroller und Replikationsverwaltungsfunktionen

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

Identitätswechselebenen