Функция 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
[in, optional] DnsDomainName
Указатель на строку, завершающую значение NULL, содержащую полное DNS-имя домена для привязки. Дополнительные сведения см. в описании dnsDomainName
[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 |