1

我正在尝试将证书添加到当前用户证书存储中,并在它从其他应用程序中读取后立即添加。所以,我正在做的是

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 仍然在做一些事情来完成导入过程?

4

0 回答 0