2009-02-19 22 views
49

मेरे पास मेकर्ट के माध्यम से जेनरेट किया गया प्रमाणपत्र है। मैं पीरट्रस्ट का उपयोग कर डब्ल्यूसीएफ संदेश सुरक्षा के लिए इस प्रमाणपत्र का उपयोग करना चाहता हूं। मैं C# या .NET का उपयोग कर "विश्वसनीय लोगों" स्थानीय मशीन प्रमाणपत्र स्टोर में प्रमाणपत्र को प्रोग्रामेटिक रूप से कैसे इंस्टॉल कर सकता हूं?मैं C# का उपयोग कर स्थानीय मशीन स्टोर में प्रोग्राम प्रमाणपत्र कैसे स्थापित कर सकता हूं?

मेरे पास एक सीईआर फ़ाइल है, लेकिन एक पीएफएक्स भी बना सकती है।

+0

बीटीडब्ल्यू - मुझे मेकर्ट और ट्रस्ट का विवरण पता है। कृपया, प्रोग्रामैटिक सी # या इंस्टॉलशील्ड का उपयोग कर प्रमाण पत्र स्थापित करने के सुझावों की तलाश करें। धन्यवाद! –

+0

कोई विचार है कि सी प्रोग्राम में ऐसा कैसे करें ?? खिड़कियों में कोई एपीआई ?? – 2vision2

उत्तर

53

मुझे विश्वास है कि यह सही है:

using (X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.LocalMachine)) 
{ 
    store.Open(OpenFlags.ReadWrite); 
    store.Add(cert); //where cert is an X509Certificate object 
} 
+1

यह प्रमाण पत्र सफलतापूर्वक स्थापित करता है, लेकिन जब मैं निजी स्टोर में निजी कुंजी के लिए निजी कुंजी विकल्प प्रबंधित करता हूं, तो यह "प्रमाण पत्र के लिए कोई कुंजी नहीं मिली" त्रुटि देता है। – mit

+0

मुझे लगता है कि यह उत्तर; अब एक्स 50 9 स्टोयर के रूप में शून्य है डिस्पोजेबल नहीं है। –

+0

@mit क्या आपको "इस प्रमाणपत्र के लिए कोई निजी कुंजी नहीं मिली" का समाधान मिला? – samir105

35

निम्नलिखित मेरे लिए अच्छा काम करता है:

private static void InstallCertificate(string cerFileName) 
{ 
    X509Certificate2 certificate = new X509Certificate2(cerFileName); 
    X509Store store = new X509Store(StoreName.TrustedPublisher, StoreLocation.LocalMachine); 

    store.Open(OpenFlags.ReadWrite); 
    store.Add(certificate); 
    store.Close(); 
} 
6

इसके बजाय जो उन्नत विशेषाधिकारों की आवश्यकता है LocalMachine को प्रमाणपत्र इंस्टॉल करने की आप इसे करने के लिए जोड़ सकते हैं "CurrentUser " (मेरे लिये कार्य करता है)।

X509Store store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser); 
store.Open(OpenFlags.ReadWrite); 
store.Add(cert); //where cert is an X509Certificate object 
store.Close(); 
+0

इसके लिए धन्यवाद। यह मेरे लिए बेहतर था क्योंकि यह एक स्वयं होस्टेड सेवा में चल रहा है जिसे रनटाइम पर निष्पादित किया गया है (एकाधिक उदाहरण)। यूएसी प्रॉम्प्ट प्रदान करने का कोई तरीका नहीं है। एक बार फिर धन्यवाद! – CodeWarrior

संबंधित मुद्दे

 संबंधित मुद्दे