Функция 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, которая указывает имя учетной записи.

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

[out, optional] Sid

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

[in, out] cbSid

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

[out, optional] ReferencedDomainName

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

[in, out] cchReferencedDomainName

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

[out] peUse

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

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

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

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

Комментарии

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

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

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

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2003 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

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

Обзор контроль доступа

Базовые функции контроль доступа

EqualPrefixSid

GetUserName

LookupAccountSid

LsaLookupNames2

SID

SID_NAME_USE