credReadA 函数 (wincred.h)

CredRead 函数从用户的凭据集中读取凭据。 使用的凭据集是与当前令牌的登录会话关联的凭据集。 令牌不得禁用用户的 SID。

语法

BOOL CredReadA(
  [in]  LPCSTR       TargetName,
  [in]  DWORD        Type,
  [in]  DWORD        Flags,
  [out] PCREDENTIALA *Credential
);

参数

[in] TargetName

指向以 null 结尾的字符串的指针,该字符串包含要读取的凭据的名称。

[in] Type

要读取的凭据的类型。 类型 必须是CRED_TYPE_* 定义的类型之一。

[in] Flags

当前保留,必须为零。

[out] Credential

指向返回凭据的单个分配块缓冲区的指针。 缓冲区中包含的任何指针都是指向此单个分配块中位置的指针。 必须通过调用 CredFree 来释放单个返回的缓冲区。

返回值

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

  • ERROR_NOT_FOUND

    不存在具有指定 TargetName 的凭据。

  • ERROR_NO_SUCH_LOGON_SESSION

    登录会话不存在,或者没有与此登录会话关联的凭据集。 网络登录会话没有关联的凭据集。

  • ERROR_INVALID_FLAGS

    Flags 参数指定了无效的标志。

注解

如果 credential 参数指定的CREDENTIAL 结构的 Type 成员的值CRED_TYPE_DOMAIN_EXTENDED,则必须在目标名称中指定命名空间。 此函数只能返回指定类型的一个凭据。

注意

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

要求

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