クライアントとサーバー間の通信を保護するために証明書を使用しています (コードなし、エンドポイント構成のみ)。現在、証明書は ACOS5 スマート カードに保存されています。WCF がサーバーにアクセスするための新しいチャネルを作成するたびに、ACOS5 ドライバーがユーザーに「ユーザー PIN」の入力を求めることを除いて、すべてが非常にうまく機能します。残念ながら、それはかなり頻繁に起こります。
ユーザーが現在のプロセス内で少なくともしばらく入力した PIN をキャッシュするようにドライバーを構成する方法はありますか、または同じセッション内で毎回プログラムでピンをキャッシュして提供するにはどうすればよいですか?
私はこの記事でいくつかの有用なものを見つけました:
これは、以前のバージョンの Windows では、入力した PIN を各 CSP がキャッシュしていたのに対し、Windows 7 では実際に PIN をセキュリティで保護されたトークンに変換してキャッシュするためです。残念ながら、グローバル トークン キャッシュは 1 つしかありませんが、CSP は他のトークンによって生成されたトークンを使用できません。したがって、最初にスマート カード CSP がユーザーにプロンプトを表示してトークンをキャッシュし、次に SSL がユーザーにプロンプトを表示して独自のトークンをキャッシュし (最初のトークンを上書きします)、次に CSP がトークンをキャッシュします。スマート カード システムから再度プロンプトが表示されます (キャッシュされたトークンがなくなったため)。
しかし、著者が提案したソリューションを使用できません。それで、私は何をすべきですか?