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


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

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

Синтаксис

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
);

Параметры

[in] ServerName

Указатель на строку, завершающуюся значением NULL, которая указывает имя экземпляра. Этот параметр необходим для привязки к экземпляру 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 GUID — это свойство objectGUID объекта nTDSDSA экземпляра. Если этот параметр null при привязке к экземпляру AD LDS, необходимо указать параметр заметки.

[in] DnsDomainName

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

[in, optional] AuthIdentity

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

[in, optional] ServicePrincipalName

Указатель на строку, завершающуюся значением NULL, которая указывает имя субъекта-службы, назначаемое клиенту. Передача 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 по серверу Имя сервера NULL NULL NULL
Active Directory по домену NULL NULL NULL DNS-имя домена
AD LDS по порту DNS-имя компьютера с установкой AD LDS. Номер порта NULL NULL
AD LDS по guid GUID DNS-имя компьютера с установкой AD LDS. NULL GUID экземпляра NULL
 
Примечание Для повышения производительности при привязке к экземпляру AD LDS на компьютере с несколькими экземплярами AD LDS привязывается идентификатором GUID экземпляра GUID вместо номера порта.
 

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка ntdsapi.h
библиотеки Ntdsapi.lib
DLL Ntdsapi.dll