次の方法で共有


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\

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

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

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

[in] pszPassword

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

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

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

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

[out] pPackedCredentials

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

[in, out] pcbPackedCredentials

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

戻り値

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

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

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

解説

注意

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

要件

   
サポートされている最小のクライアント Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wincred.h
Library Credui.lib
[DLL] Credui.dll