スマートカード認証を受け入れるASP.Net Webアプリケーションを開発しようとしています。私はWebアプリケーションを作成し、IISに展開しました。ルート証明書は、CAによって承認されたIISマシンの信頼されたルートディレクトリにインストールされます。そのWebアプリケーションでは、Server certificateを追加し、Require SSLを設定して証明書を受け入れるように設定しました。 クライアントがこのWebアプリケーションにアクセスするとクライアント証明書を要求し、chromeがクライアント証明書を要求し、スマートカードがクライアントのマシンに挿入され、PINが要求されると、ユーザーは有効なPINを入力し、ウェブアプリ。これまでのところすべてが期待どおりに機能しますが、この時点でクライアント証明書を読み込み、証明書チェーンを使用してそのクライアントを検証する必要があります。また、クライアント証明書に基づいて、そのユーザーのロールを取得する必要があります。クライアント証明書を読み込もうとするたびに、証明書を取得できません。以下は、スマートカード証明書を読み込むためのコードです:クライアントサーバーアーキテクチャでスマートカード認証を使用できますか?
store.Certificates.Count
は0
として来ている。ここ
`
X509Store store = null;
store = new X509Store(StoreName.Root);
store.Open(OpenFlags.ReadOnly);
var certsAuthEnc = store.Certificates.Find(X509FindType.FindByKeyUsage, (int)CertificateType.DigitalSignature, false);
`
、私はクライアント側で証明書を読むことができるか、助けてください?
あなたの助けてくれてありがとう、なぜ私はルートの場所に言及しています、私のログインウィンドウはサーバー側で、私のIISサーバー上で、証明書はルートの場所にインストールされています。 基本的には、私のASP .NET Webアプリで、PINが検証されると、そのユーザーが現在のタイムスタンプなどで有効であるかどうかのような次のステップを確認するためにそのデジタル署名データを取得する必要があります。 ユーザーがPINを入力したときにデジタル署名されたデータ? –
ルートストアは自己署名されたルート証明書のリストです。 "ローカルマシン"のスコープは "ルートストア"ではないと考えています。しかし、私が述べたように、クライアントが提示したチェーンを検証したいトラストアンカーのリストを見たくないのです。 – rmhrisk