CredGetTargetInfoA 函数 (wincred.h)

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

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

LSA 进程中的身份验证包可以通过使用 CRED_CACHE_TARGET_INFORMATION 标志调用 CredReadDomainCredentials 来缓存 TargetInfo,以便以后通过 CRED_CACHE_TARGET_INFORMATION 标志 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 [仅限桌面应用]
目标平台 窗户
标头 wincred.h
Advapi32.lib
DLL Advapi32.dll

另请参阅

CredFree

CredReadDomainCredentials

CredWriteDomainCredentials

GetLastError