Freigeben über


DsBindByInstanceW-Funktion (ntdsapi.h)

Die DsBindByInstance--Funktion bindet explizit an jede AD LDS- oder Active Directory-Instanz.

Syntax

NTDSAPI_POSTXP DWORD DsBindByInstanceW(
  [in]           LPCWSTR                  ServerName,
  [in]           LPCWSTR                  Annotation,
  [in]           GUID                     *InstanceGuid,
  [in]           LPCWSTR                  DnsDomainName,
  [in, optional] RPC_AUTH_IDENTITY_HANDLE AuthIdentity,
  [in, optional] LPCWSTR                  ServicePrincipalName,
  [in, optional] DWORD                    BindFlags,
  [out]          HANDLE                   *phDS
);

Parameter

[in] ServerName

Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den Namen der Instanz angibt. Dieser Parameter ist erforderlich, um eine Bindung an eine AD LDS-Instanz durchzuführen. Wenn dieser Parameter beim Binden an eine Active Directory-Instanz NULL- ist, muss der parameter DnsDomainName einen Wert enthalten. Wenn dieser Parameter und der parameter DnsDomainName beide NULLsind, schlägt die Funktion mit dem Rückgabewert ERROR_INVALID_PARAMETER (87) fehl.

[in] Annotation

Zeiger auf eine mit Null beendete Zeichenfolge, die die Portnummer der AD LDS-Instanz angibt, oder NULL- beim Binden an eine Active Directory-Instanz. Beispiel: "389".

Wenn dieser Parameter NULL- ist, wenn die Bindung nach Domäne an eine Active Directory-Instanz erfolgt, muss der DnsDomainName Parameter angegeben werden. Wenn dieser Parameter beim Binden an eine AD LDS-Instanz NULL- ist, muss der parameter InstanceGuid angegeben werden.

[in] InstanceGuid

Zeigen Sie auf einen GUID- Wert, der die GUID- der AD LDS-Instanz enthält. Der GUID--Wert ist die objectGUID--Eigenschaft des nTDSDSA- Objekts der Instanz. Wenn dieser Parameter beim Binden an eine AD LDS-Instanz NULL- ist, muss der parameter Annotation angegeben werden.

[in] DnsDomainName

Zeigen Sie auf eine mit Null beendete Zeichenfolge, die den DNS-Namen der Domäne angibt, wenn sie nach Domäne an eine Active Directory-Instanz gebunden wird. Legen Sie diesen Parameter auf NULL- fest, um eine Bindung an eine Active Directory-Instanz nach Server oder an eine AD LDS-Instanz zu erstellen.

[in, optional] AuthIdentity

Behandeln Sie die Anmeldeinformationen, die zum Starten der RPC-Sitzung verwendet werden. Verwenden Sie die DsMakePasswordCredentials--Funktion, um eine Struktur zu erstellen, die für AuthIdentity-geeignet ist.

[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 aus einem oder mehreren der folgenden Werte enthalten.

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Bewirkt, dass die Bindung die Identitätswechselebene für Stellvertretungen verwendet. Dadurch können Vorgänge, die eine Delegierung erfordern, z. B. DsAddSidHistory, erfolgreich ausgeführt werden. Wenn Sie dieses Flag angeben, wird auch DsBindWithSpnEx- ähnlich wie DsBindWithSpnausgeführt.

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

Für die meisten Vorgänge ist die Identitätswechselebene des Stellvertretungs nicht erforderlich; Dieses Kennzeichen sollte nur angegeben werden, wenn es erforderlich ist. Die Bindung an einen nicht autorisierten Server mit der Identitätswechselebene des Delegats 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_FORCE_KERBEROS (4)

Active Directory Lightweight Directory Services: Wenn dieses Flag angegeben ist, erfordert DsBindWithSpnEx- die Kerberos-Authentifizierung. Wenn keine Kerberos-Authentifizierung eingerichtet werden kann, versucht DsBindWithSpnEx- nicht, sich mit einem anderen Mechanismus zu authentifizieren.

[out] phDS

Adresse eines HANDLE Werts, der das Bindungshandle empfängt. Rufen Sie zum Schließen dieses Handle DsUnBind-auf.

Rückgabewert

Gibt NO_ERROR zurück, wenn andernfalls ein RPC- oder Win32-Fehler erfolgreich war. Mögliche Fehlercodes sind die in der folgenden Liste aufgeführten Fehlercodes.

Bemerkungen

In der folgenden Liste sind die erforderlichen Parameterwerte für die Bindung an eine Instanz aufgeführt.

Beispiel ServerName- Anmerkungs- InstanceGuid- DnsDomainName-
Active Directory nach Server Servername NULL- NULL- NULL-
Active Directory nach Domäne NULL- NULL- NULL- DNS-Domänenname
AD LDS nach Port DNS-Name des Computers mit der AD LDS-Installation. Portnummer NULL- NULL-
AD LDS durch GUID- DNS-Name des Computers mit der AD LDS-Installation. NULL- Instanz-GUID- NULL-
 
Hinweis Für eine verbesserte Leistung beim Binden an eine AD LDS-Instanz auf einem Computer mit mehreren Instanzen von AD LDS, binden Sie von der Instanz GUID anstelle der Portnummer.
 

Anmerkung

Der ntdsapi.h-Header definiert DsBindByInstance 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