0

我正在尝试X509Store通过 subjectName 从对象获取证书,X509FindType.FindBySubjectName.在调试时我能够在 store 对象内的 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

如果主题以电子邮件属性开头,我是否应该做一些不同的事情来按主题名查找证书?如果没有,关于如何从证书存储中检索它的任何建议?

谢谢

4

1 回答 1

0

原来这是安装在个人证书文件夹中的根证书。将其移至根目录,然后使用StoreLocation.Root就可以了。

于 2012-04-04T22:43:36.450 回答