आप प्रमाणपत्र संग्रह से प्रमाणपत्र को हटाने के लिए नेट फ्रेमवर्क में X509Store
और releated कक्षाओं की कोशिश कर सकते। निम्नलिखित कोड उदाहरण वर्तमान उपयोगकर्ता के मेरे दुकान से एक प्रमाण पत्र को हटाता है:
// 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();
शुरू संपादित करें: टिप्पणियाँ टिप्पणी अनुभाग में मैं एक कोड नमूना दिखा एक को निकालने का तरीका साथ मेरा उत्तर को नवीनीकृत किया है के आधार पर प्रमाण पत्र और श्रृंखला में सभी प्रमाण पत्र:
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);
अंत संपादित
आशा, इस मदद करता है।
यह श्रृंखला में thoese सहित मशीन से सभी प्रमाणपत्र निकाल देंगे यह सुनिश्चित कर लें होगा? – daehaai
ठीक है इसके अलावा यहां एक और सवाल है। जब आप विज़ार्ड का उपयोग करके इंस्टॉल करते हैं तो इसमें विकल्प "स्वचालित रूप से प्रकार के आधार पर प्रमाण पत्र संग्रहीत करता है"। कोड के साथ कोड में आप corrosponding स्टोर में प्रमाण कैसे स्थापित करेंगे? – daehaai
@activebiz: नहीं, निकालें() फ़ंक्शन प्रमाणपत्र श्रृंखला में प्रमाण पत्र नहीं हटाता है। श्रृंखला में प्रमाणपत्रों को हटाने के तरीके को दिखाने के लिए मैंने नमूना के साथ अपना जवाब अपडेट कर दिया है। – Hans