Функция 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 |