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


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

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

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

DsMakeSpn