0

X509Storeオブジェクトから証明書を取得しようとしています。subjectNameを使用X509FindType.FindBySubjectName.して、デバッグ時にストアオブジェクト内のinnerList配列で正しい証明書を確認できますが、何らかの理由でX509CertificateCollectionオブジェクトをインスタンス化できません。 SubjectNameで証明書を検索します。

X509Store store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509CertificateCollection certs = store.Certificates.Find(X509FindType.FindBySubjectName, Vendor.CertName, true);

件名が電子メールアドレス属性で始まっていることに気付きました。ストア内の他のすべての証明書(私が見つけることができます)は証明書名(CN)で始まります。

件名の例:

E=someDude@theirSite.com, CN=Our Technology, L=Tampa, S=FL, C=US

動作する他の証明書は次のようになります。

CN=Some Certificate Authority, OU=Ecommerce, O=Company Inc, C=US

件名がemail属性で始まる場合、subjectNameで証明書を見つけるために別の方法を実行する必要がありますか?そうでない場合は、証明書ストアから取得する方法について何か提案はありますか?

ありがとう

4

1 に答える 1

0

これは、個人証明書フォルダーにインストールされたルート証明書であることがわかりました。それをルートに移動し、使用することでStoreLocation.Rootうまくいきました。

于 2012-04-04T22:43:36.450 に答える