CredMarshalCredentialA 函数 (wincred.h)

CredMarshalCredential 函数将凭据转换为文本字符串。 从历史上看,许多函数(如 NetUseAdd)采用域名、用户名和密码作为凭据。 这些函数不接受证书作为凭据。 CredMarshalCredential 函数将此类凭据转换为可以传递到这些 API 的形式。

封送凭据应作为用户名字符串传递给当前传递凭据的任何 API。 如果适用,则传递给该 API 的域名应作为 NULL 或空传递。 对于证书凭据,证书的 PIN 应作为密码传递给该 API。

调用方不应修改或打印封送凭据。 可以在 Unicode、ANSI 和 OEM 字符集之间自由转换返回的值。 字符串区分大小写。

语法

BOOL CredMarshalCredentialA(
  [in]  CRED_MARSHAL_TYPE CredType,
  [in]  PVOID             Credential,
  [out] LPSTR             *MarshaledCredential
);

参数

[in] CredType

要封送的凭据的类型。

[in] Credential

要封送的凭据。

这是 CRED_MARSHAL_TYPE 值之一。

如果 CredTypeCertCredentialCredential 指向 CERT_CREDENTIAL_INFO 结构。

如果 CredTypeUsernameTargetCredentialCredential 指向 USERNAME_TARGET_CREDENTIAL_INFO 结构。

[out] MarshaledCredential

指向包含封送凭据的 null终止字符串的指针。 调用方应使用 CredFree释放返回的缓冲区。

返回值

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

ERROR_INVALID_PARAMETER

CredType 无效。

言论

注意

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

要求

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

另请参阅

CERT_CREDENTIAL_INFO

CRED_MARSHAL_TYPE

CredFree

CredUnmarshalCredential

GetLastError

USERNAME_TARGET_CREDENTIAL_INFO