私が作成したい USB スマートスティック アプリケーションでは、C# でロックされたワークステーションのロックを解除できる必要があります。一意の ID を持つ USB を挿入すると、ws のロックが解除されます。これを行う最良の方法は何ですか?
Rohos Logon Key のような同様のアプリケーションを目指しています。
私が作成したい USB スマートスティック アプリケーションでは、C# でロックされたワークステーションのロックを解除できる必要があります。一意の ID を持つ USB を挿入すると、ws のロックが解除されます。これを行う最良の方法は何ですか?
Rohos Logon Key のような同様のアプリケーションを目指しています。
私が理解しているように、これを達成するには、ログオンを処理するWindowsのコンポーネントの実装に置き換える/フックする必要があります。私の知る限り、あなたが求めていることを達成する他の方法はありません-ログインする前にユーザーがセキュアアテンションシーケンス(SAS)を入力する必要がある理由は、マルウェアがログオンダイアログをスプーフィングするのを防ぐためです。古いプログラムがあなたが求めていることを実行できるとしたら、これはマルウェアが悪用できるものです。
対象とするWindowsのバージョンに応じて、これを行うには2つの異なる方法があります。
WindowsXP以前の場合
これを行うには、独自のGINA(Microsoft Graphical Identification and Authentication)の代替品を作成する必要があります。参考までに、このようなdllを.Netに実装することは、おそらく悪い考えです(.NET言語でのGINAの置き換えを参照してください)。また、これはかなり高度なものであり、以下のリンクされた記事の1つを引用します
GINAの交換は高度な技術であり、軽視すべきではありません。これは、他に選択肢がない場合にのみ行う必要があります(たとえば、Windowsがサポートしていない新しいログオンメカニズムを実装している場合)。
GINAの詳細については、次のリンクを参照してください。
Vista以降
Windows Vista以降では、 GINAは資格情報プロバイダーに置き換えられているため、代わりにICredentialProviderCredentialインターフェイスを実装する必要があります。これはCOMインターフェイスですが、これを.Net言語で実装することはお勧めできません。
詳細については、次のリンクをご覧ください。