CredUnPackAuthenticationBufferA 関数 (wincred.h)
CredUnPackAuthenticationBuffer 関数は、CredUIPromptForWindowsCredentials 関数の呼び出しによって返された認証バッファーを文字列ユーザー名とパスワードに変換します。
構文
CREDUIAPI BOOL CredUnPackAuthenticationBufferA(
[in] DWORD dwFlags,
[in] PVOID pAuthBuffer,
[in] DWORD cbAuthBuffer,
[out] LPSTR pszUserName,
[in, out] DWORD *pcchlMaxUserName,
[out] LPSTR pszDomainName,
[in, out] DWORD *pcchMaxDomainName,
[out] LPSTR pszPassword,
[in, out] DWORD *pcchMaxPassword
);
パラメーター
[in] dwFlags
このパラメーターの値を CRED_PACK_PROTECTED_CREDENTIALS に設定すると、関数は認証バッファー内の資格情報の暗号化を解除しようとします。 資格情報を復号化できない場合、関数は FALSE
復号化の実行方法は、認証バッファーの形式によって異なります。
認証バッファーが
認証バッファーがマーシャリングされた KERB_*_LOGON 構造体の 1 つである場合、この関数はパスワードを復号化してから、pszPassword バッファーに戻します。
[in] pAuthBuffer
変換する認証バッファーへのポインター。
このバッファーは、通常、CredUIPromptForWindowsCredentials または CredPackAuthenticationBuffer 関数の出力です。 これは、次のいずれかの型である必要があります。
- ID 資格情報の SEC_WINNT_AUTH_IDENTITY_EX2 構造。 この関数は、他の SEC_WINNT_AUTH_IDENTITY 構造体を受け入れません。
- パスワード資格情報の KERB_INTERACTIVE_LOGON または KERB_INTERACTIVE_UNLOCK_LOGON 構造。
- スマート カード証明書資格情報の KERB_CERTIFICATE_LOGON または KERB_CERTIFICATE_UNLOCK_LOGON 構造。
- 汎用資格情報のGENERIC_CRED。
[in] cbAuthBuffer
pAuthBuffer バッファーのサイズ (バイト単位)。
[out] pszUserName
ユーザー名を受け取る null で終わる文字列へのポインター。
この文字列には、マーシャリングされた資格情報を指定できます。 「解説」を参照してください。
[in, out] pcchlMaxUserName
pszUserName バッファーのサイズを文字で指定する DWORD 値へのポインター。 出力時にバッファーのサイズが十分でない場合は、pszUserName バッファーの必要なサイズを文字で指定します。 サイズには、終端の null 文字が含まれます。
[out] pszDomainName
ユーザーのドメインの名前を受け取る null で終わる文字列へのポインター。
[in, out] pcchMaxDomainName
pszDomainName バッファーのサイズを文字で指定する DWORD 値へのポインター。 出力時にバッファーのサイズが十分でない場合は、pszDomainName バッファーの必要なサイズを文字で指定します。 サイズには、終端の null 文字が含まれます。 ドメイン名がない場合は、必要なサイズを 0 にすることができます。
[out] pszPassword
パスワードを受け取る null で終わる文字列へのポインター。
[in, out] pcchMaxPassword
この文字列には、マーシャリングされた資格情報を指定できます。 「解説」を参照してください。
戻り値
関数が成功した場合は TRUE を
拡張エラー情報については、GetLastError 関数を呼び出します。 次の表に、GetLastError 関数の一般的な値を示します。
戻りコード/値 | 形容 |
---|---|
|
CRED_PACK_PROTECTED_CREDENTIALS dwFlags パラメーターの値として渡されましたが、パスワードの保護に使用されるセキュリティ コンテキストが呼び出し元のセキュリティ コンテキストと異なるため、この関数は資格情報を復号化できません。 |
|
pszUserName、 |
|
認証バッファーがサポートされている種類ではありません。 |
備考
Windows 8 および Windows Server 2012 以降では、認証バッファーは SEC_WINNT_AUTH_IDENTITY_EX2 構造にすることができます。これは、SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON オプションで SspiEncryptAuthIdentityEx 関数を使用して必要に応じて暗号化できます。 この資格情報形式は、
手記
wincred.h ヘッダーは CredUnPackAuthenticationBuffer をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2008 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincred.h |
ライブラリ | Credui.lib |
DLL | Credui.dll |