CredGetTargetInfoA 函数 (wincred.h)

CredGetTargetInfo 函数检索命名目标计算机的所有已知目标名称信息。 此操作在本地执行,不需要任何特定特权。 返回的信息应传递到 CredReadDomainCredentialsCredWriteDomainCredentials 函数。 信息不应用于任何其他目的。

身份验证包在尝试对 TargetName 进行身份验证时计算 TargetInfo。 身份验证包会缓存此目标信息,使其可供 CredGetTargetInfo 使用。 因此,目标信息将仅在最近尝试对 TargetName 进行身份验证时可用。

不在 LSA 进程中的身份验证包可以通过使用 CRED_CACHE_TARGET_INFORMATION 标志调用 CredReadDomainCredentials 来缓存 TargetInfo,供 CredGetTargetInfo 以后检索。

语法

BOOL CredGetTargetInfoA(
  [in]  LPCSTR                          TargetName,
  [in]  DWORD                           Flags,
  [out] PCREDENTIAL_TARGET_INFORMATIONA *TargetInfo
);

参数

[in] TargetName

指向以 null 结尾的字符串的指针,该字符串包含要检索其信息的目标计算机的名称。

[in] Flags

控制函数操作的标志。 可以使用以下标志:

CRED_ALLOW_NAME_RESOLUTION

如果未找到目标信息, 则 TargetName 名称解析将在 TargetName 上将其转换为其他形式。 如果存在任何其他表单的目标信息,则返回该信息。 目前仅执行 DNS 名称解析。

如果应用程序不直接调用身份验证包,这非常有用。 应用程序可以将 TargetName 传递到另一个软件层,以便向服务器进行身份验证,并且该软件层可能会解析名称并将解析的名称传递给身份验证包。 因此,原始 TargetName 不会有任何目标信息。

[out] TargetInfo

指向包含目标信息的单个已分配块缓冲区的指针。 TargetInfo 返回的至少一个成员将为非 NULL。 缓冲区中包含的任何指针都是指向此单个分配块内的位置的指针。 必须通过调用 CredFree 来释放单个返回的缓冲区。

返回值

该函数在成功时返回 TRUE ,在失败时返回 FALSE 。 可以调用 GetLastError 函数以获取更具体的状态代码。 可以返回以下状态代码:

  • ERROR_NOT_FOUND

    命名服务器的目标信息不可用。

注解

注意

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

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wincred.h
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

CredFree

CredReadDomainCredentials

CredWriteDomainCredentials

GetLastError