共用方式為


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 標頭會根據 UNICODE 預處理器常數的定義,將 CredMarshalCredential 定義為自動選取此函式的 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