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


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

Функция DsBindWithSpnEx привязывается к контроллеру домена, используя указанные учетные данные и определенное имя субъекта-службы (SPN) для взаимной проверки подлинности. Эта функция аналогична функции DsBindWithSpn , за исключением того, что эта функция позволяет использовать дополнительные параметры привязки с параметром BindFlags .

Эта функция предоставляется в тех случаях, когда требуется полный контроль над взаимной проверкой подлинности. Не используйте эту функцию, если ожидается, что DsBind найдет сервер, так как имена субъектов-служб зависят от компьютера и маловероятно, что указанное имя субъекта-службы будет соответствовать серверу, который dsBind найдет. Предоставление аргументаServicePrincipalName null приводит к поведению, идентичном поведению DsBindWithCred.

Синтаксис

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

Параметры

[in, optional] DomainControllerName

Указатель на строку, завершающуюся нулевым значением, которая содержит полное DNS-имя домена для привязки. Дополнительные сведения см. в описании DomainControllerName в разделе DsBind .

[in, optional] DnsDomainName

Указатель на строку, завершающуюся нулевым значением, которая содержит полное DNS-имя домена для привязки. Дополнительные сведения см. в описании DnsDomainName в разделе DsBind .

[in, optional] AuthIdentity

Содержит значение RPC_AUTH_IDENTITY_HANDLE , представляющее учетные данные, используемые для привязки. The

Для получения этого значения используется функция DsMakePasswordCredentials. Если этот параметр имеет значение NULL, используются учетные данные вызывающего потока.

Перед освобождением этого дескриптора с помощью функции DsFreePasswordCredentials необходимо вызвать DsUnBind.

[in, optional] ServicePrincipalName

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

[in, optional] BindFlags

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

NTDSAPI_BIND_ALLOW_DELEGATION (1)

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

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

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

NTDSAPI_BIND_FIND_BINDING (2)

Зарезервировано.

NTDSAPI_BIND_FORCE_KERBEROS (4)

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

[out] phDS

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

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

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

Комментарии

Примечание

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

Требования

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

См. также раздел

Контроллер домена и функции управления репликацией

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

Уровни олицетворения