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 會從 CredUIPromptForCredentialsCredUICmdLinePromptForCredentials 接收。

[out] user

接收用戶帳戶名稱之 Null 終止字串的指標。

[in] userBufferSize

要寫入 pszUser 字串的字元數上限,包括終止 的 Null 字元。

注意 CREDUI_MAX_USERNAME_LENGTH不包含終止 的 Null 字元。
 

[out] domain

接收功能變數名稱之 Null 終止字串的指標。 如果 pszUserName 指定憑證, pszDomain 會是 NULL

[in] domainBufferSize

要寫入 pszDomain 字串的字元數上限,包括終止 的 Null 字元。

注意 CREDUI_MAX_DOMAIN_TARGET_LENGTH不包含終止 Null 字元。
 

傳回值

此函式會傳回下列內容:

  • NO_ERROR

    用戶名稱有效。

  • ERROR_INVALID_ACCOUNT_NAME

    使用者名稱無效。

  • ERROR_INSUFFICIENT_BUFFER

    其中一個緩衝區太小。

  • ERROR_INVALID_PARAMETER
    • ulUserMaxCharsulDomainMaxChars 為零。
    • pszUserNamepszUserpszDomainNULL

備註

此函式會剖析 CredUIPromptForCredentialsCredUICmdLinePromptForCredentials 函式所傳回的使用者名稱資訊,以便將產生的認證傳遞至需要使用者名稱和網域做為個別字符串的函式,例如 LogonUser

下列為支援的格式:

  • <MarshalledCredentialReference>

    由 CredIsMarshaledCredential 所定義的封送處理認證參考。 這類認證會在 User 參數中傳回。 Domain 參數會設定為空字串。

  • <DomainName>\<UserName>

    <UserName> 會在 User 參數中傳回,<而傳回 DomainName> 則是 Domain 參數。 如果 UserName 包含反斜杠 (\) ,則名稱會被視為具有這個語法。

  • <UserName>@<DNSDomainName>

    整個字串會在 User 參數中傳回。 Domain 參數會設定為空字串。 針對此語法,會使用字串中的最後一個 @ ,因為 <UserName> 可以包含 @ 但 <DNSDomainName> 不能。

注意

wincred.h 標頭會根據 UNICODE 預處理器常數的定義,將 CredUIParseUserName 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
目標平台 Windows
標頭 wincred.h
程式庫 Credui.lib
Dll Credui.dll

另請參閱

CredIsMarshaledCredential

CredUICmdLinePromptForCredentials

CredUIPromptForCredentials

LogonUser