Поделиться через


Функция DsBindByInstanceA (ntdsapi.h)

Функция DsBindByInstance явным образом привязывается к любому экземпляру AD LDS или Active Directory.

Синтаксис

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

Параметры

[in] ServerName

Указатель на строку, завершающуюся нулевым значением, которая указывает имя экземпляра. Этот параметр необходим для привязки к экземпляру AD LDS. Если этот параметр имеет значение NULL при привязке к экземпляру Active Directory, то параметр DnsDomainName должен содержать значение . Если оба параметра и dnsDomainName имеют значение NULL, функция завершается ошибкой с возвращаемым значением ERROR_INVALID_PARAMETER (87).

[in] Annotation

Указатель на строку, завершающуюся значением NULL, которая указывает номер порта экземпляра AD LDS или значение NULL при привязке к экземпляру Active Directory. Например, "389".

Если этот параметр имеет значение NULL при привязке домена к экземпляру Active Directory, необходимо указать параметр DnsDomainName . Если этот параметр имеет значение NULL при привязке к экземпляру AD LDS, необходимо указать параметр InstanceGuid .

[in] InstanceGuid

Указатель на значение GUID , содержащее GUID экземпляра AD LDS. Значение GUID — это свойство objectGUID объекта nTDSDSA экземпляра . Если этот параметр имеет значение NULL при привязке к экземпляру AD LDS, необходимо указать параметр Annotation .

[in] DnsDomainName

Указатель на строку, завершающуюся значением NULL, которая указывает DNS-имя домена при привязке к экземпляру Active Directory по домену. Присвойте этому параметру значение NULL , чтобы выполнить привязку к экземпляру Active Directory по серверу или к экземпляру AD LDS.

[in, optional] AuthIdentity

Дескриптор учетных данных, используемых для запуска сеанса RPC. Используйте функцию DsMakePasswordCredentials , чтобы создать структуру, подходящую для AuthIdentity.

[in, optional] ServicePrincipalName

Указатель на строку, завершающуюся нулевым значением, которая указывает имя субъекта-службы, назначаемого клиенту. Передача null в ServicePrincipalName эквивалентна вызову функции DsBindWithCred .

[in, optional] BindFlags

Содержит набор флагов, определяющих поведение этой функции. Этот параметр может содержать ноль или сочетание одного или нескольких из следующих значений.

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Заставляет привязку использовать уровень олицетворения делегата. Это позволяет выполнять операции, требующие делегирования, например DsAddSidHistory. Если указать этот флаг, dsBindWithSpnEx будет работать аналогично DsBindWithSpn.

Если этот флаг не указан, привязка будет использовать уровень олицетворения. Дополнительные сведения об уровнях олицетворения см. в разделе Уровни олицетворения.

Для большинства операций не требуется уровень олицетворения делегата; Этот флаг следует указывать только в том случае, если это необходимо. Привязка к серверу-изгою с уровнем олицетворения делегата позволяет серверу-злоумышленнику подключаться к серверу, не являющемся мошенническим, с вашими учетными данными и выполнять непреднамеренные операции.

NTDSAPI_BIND_FORCE_KERBEROS (4)

Службы Active Directory облегченного доступа к каталогу. Если этот флаг указан, dsBindWithSpnEx требует использования проверки подлинности Kerberos. Если не удается установить проверку подлинности Kerberos, DsBindWithSpnEx не будет пытаться выполнить проверку подлинности с помощью любого другого механизма.

[out] phDS

Адрес значения HANDLE , получающего дескриптор привязки. Чтобы закрыть этот дескриптор, вызовите DsUnBind.

Возвращаемое значение

Возвращает NO_ERROR в случае успешного выполнения или ошибки RPC или Win32 в противном случае. Возможные коды ошибок включают коды, перечисленные в следующем списке.

Комментарии

В следующем списке перечислены обязательные значения параметров для привязки к экземпляру .

Экземпляр ServerName Комментарий InstanceGuid DnsDomainName
Active Directory по серверам Server Name (Имя сервера) NULL NULL NULL
Active Directory по доменам NULL NULL NULL доменное имя DNS-сервера;
AD LDS по портам DNS-имя компьютера с установкой AD LDS. Номер порта NULL NULL
AD LDS по GUID DNS-имя компьютера с установкой AD LDS. NULL Идентификатор GUID экземпляра NULL
 
Примечание Чтобы повысить производительность при привязке к экземпляру AD LDS на компьютере с несколькими экземплярами AD LDS, привяжите к идентификатору GUID экземпляра вместо номера порта.
 

Примечание

Заголовок ntdsapi.h определяет DsBindByInstance в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista
Минимальная версия сервера Windows Server 2008
Целевая платформа Windows
Header ntdsapi.h
Библиотека Ntdsapi.lib
DLL Ntdsapi.dll