शुभ दिनSystem.Security.Cryptography.CryptographicException: कुंजी समुच्चय दृश्य स्टूडियो
मैं इस त्रुटि के कारण एक निजी कुंजी असाइन करने की कोशिश गंभीर मुद्दों हो रहा है अंदर फेंक दिया मौजूद नहीं है।
- प्रमाण पत्र के लिए एक निजी कुंजी है:
System.Security.Cryptography.CryptographicException: Keyset does not exist
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine); store.Open(OpenFlags.ReadOnly); var col = store.Certificates.Find(X509FindType.FindBySerialNumber, "00873476DC47C5BB614EA96F2A9CE744A6", false); var cert = col[0]; var xmlUnSignedSaml = new XmlDocument(); xmlUnSignedSaml.LoadXml(assertion); xmlUnSignedSaml.PreserveWhitespace = true; SignedXml signedXml = new SignedXml(xmlUnSignedSaml); signedXml.SigningKey = cert.PrivateKey; //<<<--- Exception thrown.
मैं निम्नलिखित सत्यापित किया है।
- आईएसआरआर, नेटवर्क सेवा, स्थानीय सेवा और एमएमसी कंसोल पर स्थानीय उपयोगकर्ता संदर्भ को प्रमाण पत्र पर अनुमतियां दी गई हैं। सर्टिफिकेट स्थानीय मैचिन में है - व्यक्तिगत फ़ोल्डर
- उसी प्रक्रिया को "सी: \ दस्तावेज़ और सेटिंग्स \ सभी उपयोगकर्ता \ अनुप्रयोग डेटा \ Microsoft \ Crypto \ RSA \ MachineKeys" पर मशीनकी फ़ोल्डर को अनुमतियां दी जाती हैं।
मैं अगले पन्नों पर जवाब जाँच कर ली है, लेकिन पूरी तरह से उनमें से कोई भी मेरे लिए काम किया:
- Stack Overflow User @blowdart's answer
- MSDN Answer
- अन्य साइटों, लेकिन सेट अप करने की करना पड़ा आईआईएस और वहां काम करने के लिए प्रमाण पत्र प्राप्त करना
मैं विजुअल स्टडी के भीतर से एप्लिकेशन चला रहा हूं ओ, और उपरोक्त कोड सेगमेंट पर, यह SignedXml's SigningKey
सेट करने का प्रयास करने का अपवाद फेंकता है, इसे पाने और चलाने के लिए मैं और क्या कर सकता हूं? (बाद का विचार है, मैं भी प्रमाणपत्र और फ़ोल्डर पर "सभी" अनुमति की कोशिश की है - यहां तक कि कि एक ही अपवाद फेंक दिया)