2010-01-04 14 views
7

मैं मशीन पर प्रमाणपत्र स्थापित करना चाहता हूं अगर यह पहले से इंस्टॉल नहीं हुआ है। मैंने यह जांचने की कोशिश की कि स्टोर में प्रमाणपत्र है या नहीं, लेकिन किसी भी तरह मेरा स्टोर हमेशा खाली रहता है। मैंने "इंटरमीडिएट प्रमाणन प्राधिकरण" फ़ोल्डर की जांच की और वहां 18 प्रमाण पत्र पाए। तो यह कोड 0 क्यों लिखता है?मेरे प्रमाणपत्र स्टोर से प्रमाणपत्र कैसे पढ़ा जाए?

X509Store store = new X509Store(StoreName.CertificateAuthority, StoreLocation.LocalMachine); 
Console.WriteLine(store.Certificates.Count); 

मैंने StoreLocation.CurrentUser भी आजमाया। मैं क्या गलत कर रहा हूं?

उत्तर

8

आपको प्रमाणपत्रों तक पहुंचने से पहले store.Open(OpenFlags.ReadWrite); पर कॉल करना होगा।

0

एक संभावित स्पष्टीकरण यह हो सकता है कि इस कोड को चलाने वाली प्रक्रिया में उस विशेष स्टोर की अनुमति नहीं हो सकती है।

सर्ट स्टोर वास्तव में फ़ाइल सिस्टम के एक विशेष भाग के आसपास एक रैपर है, और सभी कर्ट वास्तव में सिर्फ फाइलें हैं। उनके पास एक्सेस कंट्रोल लिस्ट (एसीएल) हैं, इसलिए यदि आपके पास सही अनुमति नहीं है, तो आप उन्हें नहीं देख सकते हैं।

आप आसानी से सत्यापित कर सकते हैं कि यह प्रशासक priviliges के साथ कोड चलाकर आपकी समस्या है (हालांकि, यूएसी से अवगत रहें)।

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