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-terminated 字符串的指针,其中包含要分析的用户名。 名称必须采用 UPN 或下层格式,或者证书。 通常,pszUserName 从 CredUIPromptForCredentials 或 CredUICmdLinePromptForCredentials接收。
[out] user
指向接收用户帐户名称的 null终止字符串的指针。
[in] userBufferSize
写入 pszUser 字符串的最大字符数,包括终止 null 字符。
[out] domain
指向接收域名的 null终止字符串的指针。 如果 pszUserName
[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 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | wincred.h |
库 | Credui.lib |
DLL | Credui.dll |