LookupAccountSidA 函数 (winbase.h)

LookupAccountSid 函数接受 安全标识符(SID)作为输入。 它检索此 SID 的帐户的名称以及找到此 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

指向要查找的 SID 的指针。

[out, optional] Name

指向接收 null-terminated 字符串的缓冲区的指针,该字符串包含与 lpSid 参数对应的帐户名称。

[in, out] cchName

在输入时,指定 lpName 缓冲区 TCHAR秒的大小。 如果函数因缓冲区太小或 cchName 为零而失败,cchName 接收所需的缓冲区大小,包括终止 null 字符。

[out, optional] ReferencedDomainName

指向接收 null-terminated 字符串的缓冲区的指针,其中包含在其中找到帐户名称的域的名称。

在服务器上,为本地计算机安全数据库中的大多数帐户返回的域名是服务器为其域控制器的域的名称。

在工作站上,在本地计算机的安全数据库中为大多数帐户返回的域名是自系统最后一次启动时计算机的名称(排除反斜杠)。 如果计算机名称发生更改,则旧名称将继续作为域名返回,直到系统重新启动。

某些帐户由系统预定义。 为这些帐户返回的域名为 BUILTIN。

[in, out] cchReferencedDomainName

在输入时,指定 lpReferencedDomainName 缓冲区 TCHARs 的大小。 如果函数由于缓冲区太小或 cchReferencedDomainName 为零而失败,cchReferencedDomainName 接收所需的缓冲区大小,包括终止 null 字符。

[out] peUse

指向接收指示帐户类型的 SID_NAME_USE 值的变量的指针。

返回值

如果函数成功,该函数将返回非零。

如果函数失败,则返回零。 若要获取扩展的错误信息,请调用 GetLastError

言论

LookupAccountSid 函数通过首先检查已知 SID 列表来尝试查找指定 SID 的名称。 如果提供的 SID 与已知的 SID 不对应,该函数会检查内置和管理定义的本地帐户。 接下来,该函数检查主域。 主域无法识别的安全 标识符会根据对应于其 SID 前缀的受信任域进行检查。

如果函数找不到 SID 的帐户名称,GetLastError 返回ERROR_NONE_MAPPED。 如果网络超时阻止函数查找名称,则可能会发生这种情况。 对于没有相应帐户名称的 SID(例如标识 登录会话登录 SID),也会发生这种情况。

除了查找本地帐户、本地域帐户和显式受信任的域帐户外,LookupAccountSid 还可以查找林中任何域中任何帐户的 SID,包括仅出现在林中帐户的 SIDhistory 字段中的 SID。 SIDhistory 字段存储已从另一个域移动的帐户的前 SID。 若要查找 SID,LookupAccountSid 查询林的全局目录。

例子

有关使用此函数的示例,请参阅 搜索访问令牌中的 SID。

注意

winbase.h 标头将 LookupAccountSid 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows XP [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2003 [桌面应用 |UWP 应用]
目标平台 窗户
标头 winbase.h (包括 Windows.h)
Advapi32.lib
DLL Advapi32.dll

另请参阅

访问控制概述

基本访问控制函数

EqualPrefixSid

LookupAccountName

SID

SID_NAME_USE