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


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

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

Функция LsaLookupNames также может получить учетные записи компьютера.

Синтаксис

BOOL LookupAccountNameA(
  [in, optional]  LPCSTR        lpSystemName,
  [in]            LPCSTR        lpAccountName,
  [out, optional] PSID          Sid,
  [in, out]       LPDWORD       cbSid,
  [out, optional] LPSTR         ReferencedDomainName,
  [in, out]       LPDWORD       cchReferencedDomainName,
  [out]           PSID_NAME_USE peUse
);

Параметры

[in, optional] lpSystemName

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

[in] lpAccountName

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

Используйте полную строку в формате domain_name\user_name, чтобы убедиться, что LookupAccountName находит учетную запись в нужном домене.

[out, optional] Sid

Указатель на буфер, который получает структуру идентификатора безопасности , соответствующую имени учетной записи, указанной параметром lpAccountName. Если этот параметр NULL, cbSid должно быть равно нулю.

[in, out] cbSid

Указатель на переменную. В входных данных это значение указывает размер буфера sid в байтах. Если функция завершается ошибкой, так как буфер слишком мал или если cbSid равно нулю, эта переменная получает требуемый размер буфера.

[out, optional] ReferencedDomainName

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

[in, out] cchReferencedDomainName

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

[out] peUse

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

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

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

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

Замечания

Функция LookupAccountName пытается найти идентификатор безопасности для указанного имени, сначала проверив список известных идентификаторов SID. Если имя не соответствует хорошо известному идентификатору безопасности, функция проверяет встроенные и административные локальные учетные записи. Затем функция проверяет основной домен. Если имя не найдено, проверяются доверенные домены.

Используйте полные имена учетных записей (например, domain_name\user_name) вместо изолированных имен (например, user_name). Полные имена являются однозначной и обеспечивают более высокую производительность при выполнении поиска. Эта функция также поддерживает полные DNS-имена (например, example.example.com\user_name) и имена субъектов-пользователей (например, someone@example.com).

Помимо поиска локальных учетных записей, учетных записей локального домена и явным образом доверенных учетных записей домена, LookupAccountName могут искать имя любой учетной записи в любом домене в лесу.

Заметка

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

Требования

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

См. также

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

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

EqualPrefixSid

GetUserName

LookupAccountSid

LsaLookupNames2

SID

SID_NAME_USE