Sertifika deposundan bir sertifikayı silmek Net Framework içinde X509Store
ve releated sınıfları deneyebilirsiniz. Aşağıdaki kod örneği geçerli kullanıcının My deposundan bir sertifika siler:
// Use other store locations if your certificate is not in the current user store.
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite | OpenFlags.IncludeArchived);
// You could also use a more specific find type such as X509FindType.FindByThumbprint
X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);
foreach (var cert in col)
{
Console.Out.WriteLine(cert.SubjectName.Name);
// Remove the certificate
store.Remove(cert);
}
store.Close();
BEGIN DÜZENLEME: Ben bir kod örneği bir kaldırma gösteren cevabım güncelledik yorum bölümündeki yorumları dayanarak sertifika ve zincirdeki bütün sertifikaları:
X509Certificate2Collection col = store.Certificates.Find(X509FindType.FindBySubjectName, "yoursubjectname", false);
X509Chain ch = new X509Chain();
ch.Build(col[0]);
X509Certificate2Collection allCertsInChain = new X509Certificate2Collection();
foreach (X509ChainElement el in ch.ChainElements)
{
allCertsInChain.Add(el.Certificate);
}
store.RemoveRange(allCertsInChain);
SON DÜZENLEME
Umut, bu yardımcı olur.
o zincirdeki thoese dahil makineden tüm sertifikaları kaldıracaktır emin olur musun? – daehaai
tamam, buna ek olarak başka bir soru. Sihirbaz kullanarak yüklediğinizde, "Sertifika türüne göre otomatik olarak depola" seçeneğine sahiptir. Bu şekilde kodda corrosponding deposuna nasıl sertifika yüklersiniz? – daehaai
@activebiz: Hayır, Remove() işlevi sertifika zincirindeki sertifikaları kaldırmaz. Zincirdeki sertifikaların nasıl silineceğini göstermek için cevabımı örnekle güncelledim. – Hans