我已编写了一些代码行,如果该证书已经存在,将在安装新证书之前从证书库中删除证书,如下所示:
X509Store store = new X509Store(StoreName.Root, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySubjectName, "CertName", false);
if (certs.Count > 0)
{
foreach (var cert in certs)
{
store.Remove(cert);
}
}
但是,每次在删除证书之前检测到证书时,它都会促使用户按是,以便删除证书。是否可以在不询问用户的情况下删除证书?
答案 0 :(得分:2)
是否可以在不询问用户的情况下删除证书?
简短的回答是否定的。 Current User\Trusted Root CAs
中的证书管理(添加/删除证书)需要明确的用户同意。此行为在crypt32.dll
库中进行了硬编码。