CredUICmdLinePromptForCredentialsA 関数 (wincred.h)
CredUICmdLinePromptForCredentials 関数は、コマンド ライン (コンソール) アプリケーションで作業しているユーザーからの資格情報の入力を求め、受け入れます。 ユーザーが入力した名前とパスワードは、検証のために呼び出し元アプリケーションに戻されます。
構文
CREDUIAPI DWORD CredUICmdLinePromptForCredentialsA(
[in] PCSTR pszTargetName,
[in] PCtxtHandle pContext,
[in, optional] DWORD dwAuthError,
[in, out] PSTR UserName,
[in] ULONG ulUserBufferSize,
[in, out] PSTR pszPassword,
[in] ULONG ulPasswordBufferSize,
[in, out] PBOOL pfSave,
[in] DWORD dwFlags
);
パラメーター
[in] pszTargetName
資格情報のターゲットの名前 (通常はサーバー名) を含む、null終了文字列へのポインター。 DFS 接続の場合、この文字列は ServerName
[in] pContext
現在予約されており、NULL
[in, optional] dwAuthError
資格情報の入力を求めるメッセージが必要な理由を指定します。 呼び出し元は、別の認証呼び出しによって返されるこの Windows エラー パラメーターを渡して、ダイアログ ボックスが特定のエラーに対応できるようにします。 たとえば、パスワードの有効期限が切れた状態コードが渡された場合、ダイアログ ボックスはユーザーにアカウントのパスワードの変更を求めます。
[in, out] UserName
資格情報ユーザー名を含む -terminated 文字列
この関数は、ユーザー指定の名前をこのバッファーに書き込み、最大 ulUserNameMaxChars 文字をコピーします。 この形式の文字列は、credUIParseUsername 関数
CREDUI_FLAGS_DO_NOT_PERSIST フラグが指定されていない場合、このパラメーターで返される値は、credUIParseUsername に渡す以外に検査、印刷、または永続化を行う必要のない形式になります。 CredUIParseUsername の後続の結果は、WNetAddConnection や SSP API などのクライアント側認証 API にのみ渡すことができます。
[in] ulUserBufferSize
pszUserName にコピーできる最大文字数 (終端 null 文字を含む)。
[in, out] pszPassword
資格情報のパスワードを含む null終了文字列へのポインター。 pszPasswordに長さ 0 以外の文字列
この関数は、ユーザーが指定したパスワードをこのバッファーに書き込み、最大 ulPasswordMaxChars 文字をコピーします。 CREDUI_FLAGS_DO_NOT_PERSIST フラグが指定されていない場合、このパラメーターで返される値は、WNetAddConnection や SSP 関数などのクライアント側認証関数に渡す以外に、検査、印刷、または永続化を行わないフォームになります。
パスワードの使用が完了したら、SecureZeroMemory 関数を呼び出して、メモリからパスワードをクリアします。 パスワードの保護の詳細については、「パスワードの処理」を参照してください。
[in] ulPasswordBufferSize
pszPassword にコピーできる最大文字数 (終端 null 文字を含む)。
[in, out] pfSave
Save メッセージの初期状態を指定し、ユーザーがコマンド プロンプトに応答した後に Save メッセージの状態を受け取る BOOL へのポインター。 pfSave
[in] dwFlags
この関数の特殊な動作を指定する DWORD 値。 この値は、次の値の 0 個以上のビットごとのまたは の組み合わせにすることができます。
戻り値
戻り値は DWORD
価値 | 形容 |
---|---|
|
この状態は、無効なフラグの組み合わせに対して返されます。 |
|
pszTargetName
|
|
資格情報マネージャーを使用できません。 通常、このエラーは、CredUICmdLinePromptForCredentials を呼び出し、CREDUI_FLAGS_DO_NOT_PERSIST フラグを渡すことによって処理されます。 |
|
ユーザーが [OK] |
備考
CREDUI_FLAGS_REQUIRE_SMARTCARD、CREDUI_FLAGS_REQUIRE_CERTIFICATE、およびCREDUI_FLAGS_EXCLUDE_CERTIFICATEフラグは相互に排他的です。
CREDUI_FLAGS_DO_NOT_PERSISTを指定する場合は、pszTargetName を指定するか、または uiInfo->pszMessageText と uiInfo->pszCaption を指定する必要があります。
CREDUI_FLAG_USERNAME_TARGET_CREDENTIALSフラグとCREDUI_FLAGS_GENERIC_CREDENTIALS フラグは相互に排他的です。 どちらも指定されていない場合、資格情報はドメイン資格情報です。
CREDUI_FLAGS_GENERIC_CREDENTIALSが指定されていない場合、またはCREDUI_FLAGS_COMPLETE_USERNAMEが指定されている場合、型指定された名前 構文がチェックされます。 構文チェックは、CredUIParseUserName
CREDUI_FLAGS_GENERIC_CREDENTIALSが指定され、CREDUI_FLAGS_VALIDATE_USERNAMEも指定されている場合は、型指定された名前が構文チェックされます。 型指定された名前が無効な場合、ユーザーは有効な名前の入力を求められます。
CREDUI_FLAGS_GENERIC_CREDENTIALSが指定されていて、CREDUI_FLAGS_COMPLETE_USERNAMEもCREDUI_FLAGS_VALIDATE_USERNAMEも指定されていない場合、型指定された名前は構文チェックされません。
CREDUI_FLAGS_PERSISTもCREDUI_FLAGS_DO_NOT_PERSISTも設定されていない場合は、保存メッセージが表示され、資格情報を保存するかどうかを制御します。
CREDUI_FLAGS_PROMPT_FOR_SAVEを指定した場合、
CREDUI_FLAGS_REQUIRE_SMARTCARDフラグとCREDUI_FLAGS_EXCLUDE_CERTIFICATES フラグは相互に排他的です。 CredUICmdLinePromptForCredentials は、スマート カード証明書またはパスワード ベースの資格情報の入力を求めるメッセージをサポートします。 スマート カード証明書ではない証明書や、1 回の呼び出しで両方を要求する証明書はサポートされていません。
呼び出しモード
- 呼び出し元は、ターゲット リソースへのアクセス、credui の呼び出し (ターゲット リソースとエラー状態の説明を渡す)、CredUIParseUserName
呼び出し、ターゲット リソースに再度アクセスしてから、CredUIConfirmCredentials 呼び出そうとします。 - 呼び出し元は、CREDUI_FLAGS_DO_NOT_PERSISTを渡すことによって、リソースにアクセスせずに資格情報の入力を求めることができます。
ターゲット情報は、アクセスするリソースの場所に関する情報です。 リソースのすべての潜在的なターゲット名の一覧については、CredGetTargetInfo
- コンピューターの NetBIOS サーバー名
- コンピューターの DNS サーバー名
- コンピューターが属しているドメインの NetBIOS ドメイン名
- コンピューターが属しているドメインの DNS ドメイン名
- コンピューターが属しているツリーの DNS ツリー名
- 情報を収集したパッケージの名前
資格情報は、ターゲット名に基づいて資格情報マネージャーに格納されます。 各ターゲット名は、資格情報マネージャーに既に格納されている資格情報と照合することなく、可能な限り一般的に格納されます。 ターゲット名で資格情報を格納する重要な効果は、特定のユーザーが資格情報マネージャーに格納されているターゲットごとに資格情報を 1 つだけ持つことです。
手記
wincred.h ヘッダーは、CredUICmdLinePromptForCredentials を、UNICODE プリプロセッサ定数の定義に基づいてこの関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
サポートされる最小サーバー | Windows Server 2003 [デスクトップ アプリのみ] |
ターゲット プラットフォーム の |
ウィンドウズ |
ヘッダー | wincred.h |
ライブラリ | Credui.lib |
DLL | Credui.dll |
関連項目
CredGetTargetInfo の
CredUIConfirmCredentials の
WNetAddConnection の