DsBindWithSpnExA-Funktion (ntdsapi.h)
Die DsBindWithSpnEx--Funktion bindet mithilfe der angegebenen Anmeldeinformationen und eines bestimmten Dienstprinzipalnamens (SPN) für die gegenseitige Authentifizierung an einen Domänencontroller. Diese Funktion ähnelt der DsBindWithSpn--Funktion, mit der Ausnahme, dass diese Funktion mehr Bindungsoptionen mit dem BindFlags Parameter zulässt.
Diese Funktion wird bereitgestellt, wo vollständige Kontrolle über die gegenseitige Authentifizierung erforderlich ist. Verwenden Sie diese Funktion nicht, wenn Sie erwarten, dass DsBind- einen Server für Sie finden, da SPNs computerspezifisch sind, und es ist unwahrscheinlich, dass der von Ihnen bereitgestellte SPN mit dem Server übereinstimmt, der DsBind für Sie findet. Das Bereitstellen eines NULLServicePrincipalName Argument führt zu einem Verhalten, das mit DsBindWithCredidentisch 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 mit Null beendete Zeichenfolge, die den vollqualifizierten DNS-Namen der Domäne enthält, die gebunden werden soll. Weitere Informationen finden Sie in der beschreibung DomainControllerName im thema DsBind.
[in, optional] DnsDomainName
Zeiger auf eine mit Null beendete Zeichenfolge, die den vollqualifizierten DNS-Namen der Domäne enthält, die gebunden werden soll. 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. Das
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
Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den Dienstprinzipalnamen angibt, der dem Client zugewiesen werden soll. Das Übergeben NULL- in ServicePrincipalName- entspricht einem Aufruf der funktion DsBindWithCredWithCred.
[in, optional] BindFlags
Enthält eine Reihe von Flags, die das Verhalten dieser Funktion definieren. Dieser Parameter kann null oder eine Kombination der werte enthalten, die in der folgenden Liste aufgeführt sind.
NTDSAPI_BIND_ALLOW_DELEGATION (1)
Bewirkt, dass die Bindung die Identitätswechselebene für Stellvertretungen verwendet. Dies ermöglicht Vorgängen, die delegierung erfordern, z. B. DsAddSidHistory, erfolgreich zu sein. Wenn Sie dieses Kennzeichen angeben, wird auch DsBindWithSpnEx- wie DsBindWithSpn-ausgeführt.
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 autorisierten Server herzustellen und unbeabsichtigte Vorgänge auszuführen.
NTDSAPI_BIND_FIND_BINDING (2)
Reserviert.
NTDSAPI_BIND_FORCE_KERBEROS (4)
Active Directory Lightweight Directory Services: Wenn dieses Flag angegeben ist, erzwingt DsBindWithSpnEx- die Kerberos-Authentifizierung. Wenn keine Kerberos-Authentifizierung 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 ein Windows- oder RPC-Fehlercode andernfalls erfolgreich war. In der folgenden Liste sind allgemeine Fehlercodes aufgeführt.
Bemerkungen
Anmerkung
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 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- | ntdsapi.h |
Library | Ntdsapi.lib |
DLL- | Ntdsapi.dll |