9

ASP.NET 4.0 Web アプリケーションを開発しており、X509Store から現在のユーザー証明書を読み取りたいと考えています。LocalMachine 証明書の読み取りは正常に機能しますが、StoreLocation を CurrentUser に設定すると、空のコレクションが返されます。

次のコードは正常に動作します:

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine); // StoreLocation.CurrentUser
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);

個人ストアを (certmgr.mmc 経由で) チェックしましたが、証明書があることは確かです。

何が欠けていますか?( store.Certificates は空です )

4

3 に答える 3

2

使用しているアプリケーション プール ID に関係なく、Web アプリケーション経由で個人証明書ストアにアクセスできないようです。

当然のことですが、Web アプリケーションはその場所にアクセスできません。:)

私の解決策:

ストアにアクセスする唯一の方法だと思う ActiveX コントロールを開発しました。(また、Java アプレットも同じ機能を提供します)。JavaScript 経由で ActiveX コントロールを使用して Store にアクセスし、その情報をサーバーに送信します。

于 2012-04-18T10:51:12.107 に答える
0

同様の問題がありました。解決策は次のとおりです。

IIS admin->[your virtual dir]->Authentication->Anonymous Authentication (選択して [Edit...] をクリック) を選択し、[Application pool identity] を使用するように変更します。

そうしないと、一般的な「IUSR」として実行されている可能性があります

于 2013-03-04T02:29:39.940 に答える
0

ワーカー プロセスが証明書ストアにアクセスできない場合は、アカウントの設定に問題がある可能性があります。IIS 構成に移動して、ApplicationPools を開き、自分のものを右クリックして、[詳細設定] を選択し、LoadUserProfile を TRUE に設定してみてください。そして、プールを再起動します。それは私にとってはうまくいきます-秘密鍵で.PFXをロードするときの例外はもうありません。

于 2012-05-26T21:55:01.100 に答える