1

ストアからすべてのユーザー X509Certificates を収集し、ユーザーが使用したいものを選択できるようにそれらを提示する C# フォーム (クライアント マシン上で実行) があります。次に、証明書を Web サービスに渡して作業を行います。これはすべてうまくいきます!問題は、ユーザーが X509Certificate パスワードの入力を求められないことですか? ストアから X509Certificate を取得すると、「パスワードを確認する」方法が見つかりません。パスとパスワードが必要な X509Certificate コンストラクターの使用も考えましたが、ストアから取得した X509Certificate からファイル パスと名前を取得する方法がわかりません。ユーザーのパスワードを要求せずに、ストアから証明書を取得するだけで安全ですか?

これは私が店からつかんでいる方法です:

X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
for (int i = 0; i < store.Certificates.Count; i++) 
{
    X509Certificate c = store.Certificates[i];
    ...//add to GUI for user to pick here....
}

助けてくれてありがとう、スティーブ

4

2 に答える 2

1

証明書の秘密鍵がパスワードで保護されているかどうかによって異なります。ストアからそのような証明書にアクセスすると、Windows はそれを入力するように求めます。

于 2009-07-31T12:43:04.603 に答える
0

eToken や SmartCard などの暗号化デバイスから証明書を使用することを選択した場合、パスワード (証明書ではなくデバイスのパスワード) を入力するように自動的に求められます。それ以外の場合は、気にする必要はないと思います。Windows ではパスワードなしでローカル ストアに簡単にアクセスできます。

于 2009-07-31T12:28:11.133 に答える