共用方式為


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 字元。

Note CREDUI_MAX_USERNAME_LENGTH 不包含終止 null 字元。
 

[out] domain

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

[in] domainBufferSize

要寫入 pszDomain 字串的最大字元數,包括終止 null 字元。

Note 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 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wincred.h
連結庫 Credui.lib
DLL Credui.dll

另請參閱

CredIsMarshaledCredential

CredUICmdLinePromptForCredentials

CredUIPromptForCredentials

LogonUser