次の方法で共有


CredPackAuthenticationBufferA 関数 (wincred.h)

CredPackAuthenticationBuffer 関数は、文字列ユーザー名とパスワードを認証バッファーに変換します。

Windows 8 および Windows Server 2012 以降では、CredPackAuthenticationBuffer 関数は、ID 資格情報を認証バッファーに変換します。これは SEC_WINNT_AUTH_IDENTITY_EX2 構造体です。 このバッファーは、LsaLogonUserAcquireCredentialsHandle、またはその他の ID プロバイダー インターフェイスに渡すことができます。

構文

CREDUIAPI BOOL CredPackAuthenticationBufferA(
  [in]      DWORD dwFlags,
  [in]      LPSTR pszUserName,
  [in]      LPSTR pszPassword,
  [out]     PBYTE pPackedCredentials,
  [in, out] DWORD *pcbPackedCredentials
);

パラメーター

[in] dwFlags

資格情報をパックする方法を指定します。 これは、次のフラグの組み合わせにすることができます。

価値 意味
CRED_PACK_PROTECTED_CREDENTIALS
呼び出し元のログオン セッション内のプロセスによってのみ暗号化を解除できるように、資格情報を暗号化します。
CRED_PACK_WOW_BUFFER
WOW バッファー内の資格情報を暗号化します。
CRED_PACK_GENERIC_CREDENTIALS
CRED_GENERIC バッファー内の資格情報を暗号化します。
CRED_PACK_ID_PROVIDER_CREDENTIALS
オンライン ID の資格情報を SEC_WINNT_AUTH_IDENTITY_EX2 構造に暗号化します。 CRED_PACK_GENERIC_CREDENTIALSとCRED_PACK_ID_PROVIDER_CREDENTIALSが設定されていない場合は、KERB_INTERACTIVE_LOGON バッファー内の資格情報を暗号化します。

Windows 7、Windows Server 2008 R2、Windows Vista、Windows Server 2008: この値はサポートされていません。

[in] pszUserName

変換するユーザー名を指定する null で終わる文字列へのポインター。 ドメイン ユーザーの場合、文字列は次の形式である必要があります。

DomainName\UserName

オンライン ID の場合、資格情報がプレーンテキスト パスワードの場合、ユーザー名の形式は ProviderNameUserName。 資格情報が SEC_WINNT_AUTH_IDENTITY_EX2 構造の場合、ユーザー名はエンコードされた文字列であり、SspiEncodeAuthIdentityAsStringsへの関数呼び出しの UserName パラメーター出力

スマート カードの または証明書の資格情報 、ユーザー名は、CertCredential オプションを使用して CredMarshalCredential を する関数呼び出しの出力であるエンコードされた文字列です。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista: Online ID はサポートされていません。

[in] pszPassword

変換するパスワードを指定する null で終わる文字列へのポインター。

SEC_WINNT_AUTH_IDENTITY_EX2 資格情報の場合、パスワードは、SspiEncodeAuthIdentityAsStringsへの関数呼び出しの ppszPackedCredentialsString 出力にあるエンコードされた文字列です。

スマート カード 資格情報 の場合、これは スマート カード PIN です。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista: Online ID はサポートされていません。

[out] pPackedCredentials

出力時にパックされた認証バッファーを受け取るバイト配列へのポインター。 このパラメーターは、pcbPackedCredentials パラメーターで必要なバッファー サイズを受け取るために、NULL できます。

[in, out] pcbPackedCredentials

pPackedCredentials バッファーのサイズをバイト単位で指定する DWORD 値へのポインター。 出力時にバッファーのサイズが十分でない場合は、pPackedCredentials バッファーの必要なサイズをバイト単位で指定します。

戻り値

関数が成功した場合は TRUE を します。それ以外の場合は、FALSEを します。

拡張エラー情報については、GetLastError 関数を呼び出します。この関数は、次のエラー コードを返す可能性があります。

リターン コード 形容
ERROR_INSUFFICIENT_BUFFER
pPackedCredentials によって提供されるバッファーが小さすぎます。

備考

手記

wincred.h ヘッダーは、CredPackAuthenticationBuffer を、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2008 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wincred.h
ライブラリ Credui.lib
DLL Credui.dll