X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);//获取本地计算机受信任的根证书的储存区
public enum StoreName
AddressBook 1 其他用户的 X.509 证书存储区。
AuthRoot 2 第三方证书颁发机构 (CA) 的 X.509 证书存储区。
CertificateAuthority 3 中间证书颁发机构 (CA) 的 X.509 证书存储区。
Disallowed 4 吊销的证书的 X.509 证书存储区。
My 5 个人证书的 X.509 证书存储区。
Root 6 受信任的根证书颁发机构 (CA) 的 X.509 证书存储区。
TrustedPeople 7 直接受信任的人和资源的 X.509 证书存储区。
TrustedPublisher 8 直接受信任的发行者的 X.509 证书存储区。
public enum StoreLocation
CurrentUser 1 当前用户使用的 X.509 证书存储区。
LocalMachine 2 分配给本地计算机的 X.509 证书存储区。
store.Open(OpenFlags.ReadOnly | OpenFlags.OpenExistingOnly);
[System.Flags]
public enum OpenFlags
IncludeArchived 8 打开 X.509 证书存储区并添加存档证书。
MaxAllowed 2 以允许最高级访问的方式打开 X.509 证书存储区。
OpenExistingOnly 4 仅打开现有存储区。如果不存在任何存储区,Open(OpenFlags) 方法不会创建新的存储区。
ReadOnly 0 以只读方式打开 X.509 证书存储区。
ReadWrite 1 以读写方式打开 X.509 证书存储区。
ReadOnly、 ReadWrite 和 MaxAllowed 标志互相排斥。 OpenExistingOnly标志是唯一不需要 StorePermissionFlags.CreateStore 授予权限的标志。
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;//获取储存区上的所有证书
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection.Find(X509FindType.FindByIssuerName, "aliyun", false);//找到所有aliyun颁发的证书
X509Certificate2Collection fcollection = (X509Certificate2Collection)collection;//找到所有本地的个人证书