CredUIPromptForWindowsCredentialsA 関数 (wincred.h)
CredUIPromptForWindowsCredentials 関数は、ローカル コンピューターにインストールされている任意の資格情報プロバイダーを使用して資格情報を指定できる構成可能なダイアログ ボックスを作成して表示します。
構文
CREDUIAPI DWORD CredUIPromptForWindowsCredentialsA(
[in, optional] PCREDUI_INFOA pUiInfo,
[in] DWORD dwAuthError,
[in, out] ULONG *pulAuthPackage,
[in, optional] LPCVOID pvInAuthBuffer,
[in] ULONG ulInAuthBufferSize,
[out] LPVOID *ppvOutAuthBuffer,
[out] ULONG *pulOutAuthBufferSize,
[in, out, optional] BOOL *pfSave,
[in] DWORD dwFlags
);
パラメーター
[in, optional] pUiInfo
この 関数が表示 するダイアログ ボックスの外観をカスタマイズするための情報を含むCREDUI_INFO構造体へのポインター。
CREDUI_INFO構造体の hwndParent メンバーが NULL でない場合、この関数は親ウィンドウの中央にモーダル ダイアログ ボックスを表示します。
CREDUI_INFO構造体の hwndParent メンバーが NULL の場合、関数は画面の中央にダイアログ ボックスを表示します。
この関数は、CREDUI_INFO構造体の hbmBanner メンバーを無視します。
[in] dwAuthError
ダイアログ ボックスに表示される Windows エラー コード (Winerror.h で定義)。 以前に収集された資格情報が無効な場合、呼び出し元はこのパラメーターを使用して、資格情報を収集した API (Winlogon など) からこの関数にエラー メッセージを渡します。 対応するエラー メッセージが書式設定され、ダイアログ ボックスに表示されます。 エラー メッセージを表示しない場合は、このパラメーターの値を 0 に設定します。
[in, out] pulAuthPackage
入力時に、このパラメーターの値を使用して、 pvInAuthBuffer バッファー内の資格情報をシリアル化する認証パッケージを指定します。 pvInAuthBuffer の値が NULL で、CREDUIWIN_AUTHPACKAGE_ONLY フラグが dwFlags パラメーターに設定されている場合は、指定された認証パッケージの資格情報をシリアル化できる資格情報プロバイダーのみが列挙されます。
入力時にこのパラメーターに使用する適切な値を取得するには、 LsaLookupAuthenticationPackage 関数を呼び出し、その関数の AuthenticationPackage パラメーターの値を使用します。
出力時に、このパラメーターは 、ppvOutAuthBuffer バッファー内の資格情報をシリアル化する認証パッケージを指定します。
[in, optional] pvInAuthBuffer
ダイアログ ボックスの資格情報フィールドを設定するために使用される資格情報 BLOB へのポインター。 資格情報フィールドを空のままにするには、このパラメーターの値を NULL に 設定します。
[in] ulInAuthBufferSize
pvInAuthBuffer バッファーのサイズ (バイト単位)。
[out] ppvOutAuthBuffer
出力時に資格情報 BLOB を指定するポインターのアドレス。 Kerberos、NTLM、または Negotiate 資格情報の場合は、 CredUnPackAuthenticationBuffer 関数を呼び出して、この BLOB を資格情報の文字列表現に変換します。
資格情報 BLOB の使用が完了したら、 SecureZeroMemory 関数を呼び出してメモリからクリアし、 CoTaskMemFree 関数を呼び出して解放します。
[out] pulOutAuthBufferSize
ppvOutAuthBuffer バッファーのサイズ (バイト単位)。
[in, out, optional] pfSave
入力時に、この関数が表示するダイアログ ボックスで [チェック保存] ボックスを選択するかどうかを指定するブール値へのポインター。 出力時に、このパラメーターの値は、ユーザーがダイアログ ボックスの [送信] ボタンをクリックしたときに [チェック保存] ボックスを選択したかどうかを指定します。 [チェック保存] ボックスを無視するには、このパラメーターを NULL に設定します。
dwFlags パラメーターでCREDUIWIN_CHECKBOX フラグが設定されていない場合、このパラメーターは無視されます。
[in] dwFlags
この関数の動作を指定する 値。 この値には、次の 1 つ以上の値のビットごとの OR の組み合わせを指定できます。
値 | 意味 |
---|---|
|
呼び出し元は、資格情報プロバイダーがプレーン テキストでユーザー名とパスワードを返すように要求しています。
この値を SECURE_PROMPTと組み合わせることはできません。 |
|
[チェック保存] ボックスがダイアログ ボックスに表示されます。 |
|
pulAuthPackage パラメーターで指定された認証パッケージをサポートする資格情報プロバイダーのみを列挙する必要があります。
この値を CREDUIWIN_IN_CRED_ONLYと組み合わせることはできません。 |
|
pulAuthPackage パラメーターで指定された認証パッケージの pvInAuthBuffer パラメーターで指定された資格情報のみを列挙する必要があります。
このフラグが設定され、 pvInAuthBuffer パラメーターが NULL の場合、関数は失敗します。 この値を CREDUIWIN_AUTHPACKAGE_ONLYと組み合わせることはできません。 |
|
資格情報プロバイダーは、管理者のみを列挙する必要があります。 この値は、ユーザー アカウント制御 (UAC) のみを目的としています。 外部の呼び出し元は、このフラグを設定しないことをお勧めします。 |
|
pulAuthPackage パラメーターで指定された認証パッケージの受信資格情報のみを列挙する必要があります。 |
|
資格情報ダイアログ ボックスは、セキュリティで保護されたデスクトップに表示されます。 この値を CREDUIWIN_GENERICと組み合わせることはできません。
Windows Vista: この値は、SP1 を使用した Windows Vista 以降でサポートされています。 |
|
資格情報ダイアログ ボックスは SspiPromptForCredentials 関数によって呼び出され、クライアントは前のハンドシェイクの前にプロンプトが表示されます。 pvInAuthBuffer パラメーターにSSPIPFC_NO_CHECKBOXが渡された場合、資格情報プロバイダーに [チェック] ボックスは表示されません。
Windows Vista: この値は、SP1 を使用した Windows Vista 以降でサポートされています。 |
|
資格情報プロバイダーは、AAD 機関名をパックしません。 これは、Azure AD 参加済みデバイスにのみ適用されます。
Windows 10バージョン 1607: この値は、Windows 10 バージョン 1607 以降でサポートされています。 |
|
資格情報プロバイダーは、プロバイダーが 64 ビット システムで実行されている場合でも、 ppvOutAuthBuffer パラメーターが指す資格情報 BLOB を 32 ビット境界に合わせる必要があります。 |
|
Windows Hello資格情報はスマート カード認証バッファーにパックされます。 これは、顔、指紋、PIN 資格情報プロバイダーにのみ適用されます。
Windows 10 Version 1809: この値は、Windows 10 Version 1809 以降でサポートされています。 |
戻り値
関数が成功した場合、関数は ERROR_SUCCESSを返します。 関数がユーザーによって取り消された場合は、 ERROR_CANCELLEDを返します。 その他の戻り値は、関数の読み込みに失敗したことを示します。
注釈
この関数は資格情報を保存しません。
SSPI を使用してユーザーを認証するアプリケーションでは、この関数を呼び出さないでください。 代わりに、 SspiPromptForCredentials を呼び出します。
注意
wincred.h ヘッダーは、CRedUIPromptForWindowsCredentials をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wincred.h |
Library | Credui.lib |
[DLL] | Credui.dll |