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


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

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

Эта функция предоставляется, когда полный контроль требуется для взаимной проверки подлинности. Не используйте эту функцию, если ожидается, что DsBind найти сервер для вас, так как имена субъектов-служб зависят от компьютера, и вряд ли предоставленная имя субъекта-службы будет соответствовать серверу, который dsBind находит для вас. Предоставление аргумента NULLServicePrincipalName приводит к поведению, идентичном 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

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

[in, optional] DnsDomainName

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

[in, optional] AuthIdentity

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

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

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

[in, optional] ServicePrincipalName

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

[in, optional] BindFlags

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

NTDSAPI_BIND_ALLOW_DELEGATION (1)

Вызывает привязку для использования уровня олицетворения делегата. Это позволяет операциям, которым требуется делегирование, например, dsAddSidHistory. Указание этого флага также приводит к тому, что DsBindWithSpnEx работать так, как dsBindWithSpn.

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

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

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
целевая платформа Виндоус
заголовка ntdsapi.h
библиотеки Ntdsapi.lib
DLL Ntdsapi.dll

См. также

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

DsBind

DsBindWithCred

DsBindWithSpn

DsUnBind

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