我正在尝试将证书添加到当前用户证书存储中,并在它从其他应用程序中读取后立即添加。所以,我正在做的是
var cert = new X509Certificate2(...//binary certificate here){
PrivateKey = myPrivateKey
};
var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.MaxAllowed);
store.Add(new X509Certificate2(cert.Export(X509ContentType.Pfx), string.Empty, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.UserKeySet));
store.Close();
store = null;
cert.Reset();
cert = null;
完成此操作后,应用程序仍在运行并执行其他操作,但并不总是可以在存储中找到此证书。但是,如果我们等待 1/2 分钟,我们肯定会找到此证书!
怎么了?是不是 X509Store.Add 不是同步操作,也许在关闭和处理之后,Windows 仍然在做一些事情来完成导入过程?