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


Функция LookupAccountSidA (winbase.h)

Функция LookupAccountSid принимает идентификатор безопасности (SID) в качестве входных данных. Он получает имя учетной записи для этого идентификатора безопасности и имя первого домена, на котором найден этот идентификатор безопасности.

Синтаксис

BOOL LookupAccountSidA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            PSID          Sid,
  [out, optional] LPSTR         Name,
  [in, out]       LPDWORD       cchName,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Параметры

[in, optional] lpSystemName

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

[in] Sid

Указатель на идентификатор безопасности для поиска.

[out, optional] Name

Указатель на буфер, получающий null-terminated string, содержащий имя учетной записи, соответствующее параметру lpSid.

[in, out] cchName

При входных данных задает размер TCHARбуфера lpName. Если функция завершается ошибкой, так как буфер слишком мал или если cchName равно нулю, cchName получает требуемый размер буфера, включая завершающий символ null.

[out, optional] ReferencedDomainName

Указатель на буфер, получающий null-terminated string, содержащий имя домена, в котором найдено имя учетной записи.

На сервере имя домена, возвращаемое для большинства учетных записей в базе данных безопасности локального компьютера, — это имя домена, для которого сервер является контроллером домена.

На рабочей станции доменное имя, возвращаемое для большинства учетных записей в базе данных безопасности локального компьютера, — это имя компьютера по состоянию на последнее начало системы (обратные косые скобки исключаются). Если имя компьютера изменяется, старое имя будет возвращено в качестве доменного имени до перезапуска системы.

Некоторые учетные записи предопределяются системой. Доменное имя, возвращаемое для этих учетных записей, — BUILTIN.

[in, out] cchReferencedDomainName

При входных данных задает размер TCHARбуфера lpReferencedDomainName. Если функция завершается ошибкой, так как буфер слишком мал или если cchReferencedDomainName равно нулю, cchReferencedDomainName получает необходимый размер буфера, включая конечный символ null.

[out] peUse

Указатель на переменную, которая получает значение SID_NAME_USE, указывающее тип учетной записи.

Возвращаемое значение

Если функция выполнена успешно, функция возвращает ненулевое значение.

Если функция завершается ошибкой, она возвращает ноль. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Функция LookupAccountSid пытается найти имя указанного идентификатора безопасности, сначала проверив список известных идентификаторов БЕЗОПАСНОСТИ. Если указанный идентификатор безопасности не соответствует хорошо известному идентификатору безопасности, функция проверяет встроенные и административные учетные записи. Затем функция проверяет основной домен. идентификаторы безопасности не распознаются основным доменом, проверяются на доверенные домены, соответствующие префиксам безопасности.

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

Помимо поиска идентификаторов sid для локальных учетных записей, учетных записей локального домена и явным образом доверенных учетных записей домена, LookupAccountSid могут искать идентификаторы SID для любой учетной записи в любом домене в лесу, включая идентификаторы SIDhistory, которые отображаются только в поле SIDhistory учетной записи в лесу. Поле SIDhistory хранит бывшие идентификаторы SID учетной записи, которая была перемещена из другого домена. Чтобы найти идентификатор безопасности, LookupAccountSid запрашивает глобальный каталог леса.

Примеры

Пример использования этой функции см. в статье поиск идентификатора безопасности вмаркера доступа.

Заметка

Заголовок winbase.h определяет LookupAccountSid как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2003 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Advapi32.lib
DLL Advapi32.dll

См. также

Обзор управления доступом

базовые функции управления доступом

EqualPrefixSid

LookupAccountName

SID

SID_NAME_USE