CredUIParseUserNameA 函数 (wincred.h)
CredUIParseUserName 函数从完全限定的用户名中提取域和用户帐户名。
语法
CREDUIAPI DWORD CredUIParseUserNameA(
[in] PCSTR userName,
[out] CHAR *user,
[in] ULONG userBufferSize,
[out] CHAR *domain,
[in] ULONG domainBufferSize
);
参数
[in] userName
指向包含要分析的用户名的 以 null 结尾的字符串的指针。 名称必须采用 UPN 或下级格式,或证书。 通常, pszUserName 是从 CredUIPromptForCredentials 或 CredUICmdLinePromptForCredentials 接收的。
[out] user
指向接收用户帐户名称的 以 null 结尾的字符串的指针。
[in] userBufferSize
要写入 pszUser 字符串的最大字符数,包括终止 null 字符。
[out] domain
指向接收域名的 以 null 结尾的字符串的指针。 如果 pszUserName 指定证书, pszDomain 将为 NULL。
[in] domainBufferSize
要写入 pszDomain 字符串的最大字符数,包括终止 null 字符。
返回值
此函数返回以下内容:
- NO_ERROR
用户名有效。
- ERROR_INVALID_ACCOUNT_NAME
用户名无效。
- ERROR_INSUFFICIENT_BUFFER
其中一个缓冲区太小。
- ERROR_INVALID_PARAMETER
- ulUserMaxChars 或 ulDomainMaxChars 为零。
- pszUserName、 pszUser 或 pszDomain 为 NULL。
注解
此函数分析 CredUIPromptForCredentials 和 CredUICmdLinePromptForCredentials 函数返回的用户名信息,以便生成的凭据可以传递给需要将用户名和域作为单独字符串的函数,例如 LogonUser。
支持以下格式:
- <MarshalledCredentialReference>
CredIsMarshaledCredential 定义的封送凭据引用。 此类凭据在 User 参数中返回。 Domain 参数设置为空字符串。
- <DomainName>\<UserName>
<UserName> 在 User 参数中返回,而返回的 <DomainName> 是 Domain 参数。 如果 UserName 包含反斜杠 (\) ,则名称被视为具有此语法。
- <UserName>@<DNSDomainName>
在 User 参数中返回整个字符串。 Domain 参数设置为空字符串。 对于此语法,使用字符串中的最后一个 @,因为 <UserName> 可以包含 @,但 <DNSDomainName> 不能。
注意
wincred.h 标头将 CredUIParseUserName 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincred.h |
Library | Credui.lib |
DLL | Credui.dll |