あなたの要件について私が理解していることから、資格情報プロバイダー レベルでカスタム ユーザー インターフェイスを表示したいと考えています。これは、次のいずれかの方法で実現できます。
(1) クレデンシャルの SetSelected メソッドでモーダル ダイアログとして UI を含むカスタム CP を記述します。このアプローチにより、任意の UI をカスタマイズできます。モーダル ウィンドウが閉じられると、実際のパスワード CP が作成されます (デフォルトのパスワード CP をラップすると仮定します)。
(2) Windows サービスからアプリケーションを起動する: このアプローチでは、プロバイダーの初期化は停止しません。基本的に、Windows サービスは、Winsta0\Winlogon デスクトップでプロセスを起動するために使用されます。Alt+TAB を使用して起動されたプロセスにアクセスできます。使用する必要がある基本的な手順は次のとおりです。
- アクティブなセッション ID を取得するための WTSGetActiveConsoleSessionId
- winlogon pid を取得するための WTSQueryUserToken()
- トークンを複製する DuplicateTokenEx
- AdjustTokenPrivileges を呼び出してトークン権限を調整する
- lpDesktop を Winsta0\Winlogon として CreateProcessAsUser
私は両方のアプローチを使用しました。最初のものは、より安全なログインを導入するために使用されます。2 つ目は、リモート アクセス ツール、コマンド プロンプトなどを起動するために使用されます。