Функция DsClientMakeSpnForTargetServerA (ntdsapi.h)
Функция DsClientMakeSpnForTargetServer создает имя субъекта-службы (SPN), которое идентифицирует конкретный сервер для проверки подлинности.
Синтаксис
NTDSAPI DWORD DsClientMakeSpnForTargetServerA(
[in] LPCSTR ServiceClass,
[in] LPCSTR ServiceName,
[in, out] DWORD *pcSpnLength,
[out] LPSTR pszSpn
);
Параметры
[in] ServiceClass
Указатель на строку, завершающуюся значением NULL, которая содержит класс службы, определенный службой. Это может быть любая строка, уникальная для службы.
[in] ServiceName
Указатель на строку, завершающуюся значением NULL, которая содержит имя узла службы различающихся имен (DNS). Это может быть либо полное имя, либо IP-адрес в стандартном интернет-формате.
Использовать IP-адрес для ServiceName не рекомендуется, так как это может создать проблему безопасности. Перед созданием имени субъекта-службы IP-адрес необходимо преобразовать в имя компьютера с помощью разрешения DNS-имен. Разрешение DNS-имени может быть спуфинировано, заменив предполагаемое имя компьютера неавторизованным именем компьютера.
[in, out] pcSpnLength
Указатель на значение DWORD , которое в записи содержит размер буфера pszSpn в символах. В выходных данных этот параметр получает количество символов, скопированных в буфер pszSpn , включая завершающее значение NULL.
[out] pszSpn
Указатель на строковый буфер, получающий имя субъекта-службы.
Возвращаемое значение
Эта функция возвращает стандартные коды ошибок Windows.
Комментарии
При использовании этой функции укажите класс службы и часть имени узла DNS.
Эта функция является упрощенной версией функции DsMakeSpn . ServiceName становится каноническим путем разрешения через DNS.
DNS-имена на основе GUID не поддерживаются. При создании упрощенное имя субъекта-службы выглядит следующим образом:
ServiceClass / ServiceName / ServiceName
Для части имени экземпляра (вторая позиция) всегда задано значение по умолчанию. Поля порта и ссылки не используются.
Примечание
Заголовок ntdsapi.h определяет DsClientMakeSpnForTargetServer как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | ntdsapi.h |
Библиотека | Ntdsapi.lib |
DLL | Ntdsapi.dll |