प्रमाण पत्र निजी कुंजी अनुमतियाँ । नेट 6

0

सवाल

मैं कोशिश कर रहा हूँ आयात करने के लिए एक प्रमाण पत्र निजी कुंजी के साथ खिड़कियों में प्रमाण पत्र की दुकान है । मैं कर सकते हैं सफलतापूर्वक आयात प्रमाण पत्र का उपयोग कर नीचे

X509Certificate2 certificate = new(certByteArray, certPassword, X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable | X509KeyStorageFlags.MachineKeySet);
X509Store store = new(StoreName.TrustedPeople, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(certificate);

लेकिन समस्या मुझे मिल गया है है, कैसे देने के लिए एक उपयोगकर्ता का उपयोग करने के लिए निजी कुंजी प्रोग्राम.
मैंने पाया है इन उपयोगी लिंक:
https://www.pkisolutions.com/accessing-and-using-certificate-private-keys-in-net-framework-net-core/
CngKey आवंटित करने के लिए अनुमति मशीन कुंजी

सेट प्रमाण पत्र PrivateKey Permissions । नेट 5

मैं अनुदान कर सकते हैं के माध्यम से उपयोग यूआई के साथ certlm.एमएससी > खींचें करने के लिए प्रमाण पत्र व्यक्तिगत स्टोर > ठीक क्लिक करें प्रमाणपत्र > के सभी कार्यों का प्रबंधन > निजी कुंजी > उपयोगकर्ता जोड़ें और अनुमति
लेकिन मैं की जरूरत है ऐसा करने के लिए, प्रोग्राम के लिए

परिवर्तन कर रहे हैं । नेट पूरा ढांचा है जो है, जहां उदाहरणों से आते हैं. मैं खर्च किया है और अधिक से अधिक एक दिन पर यह करने की कोशिश की कई प्रमाण पत्र, प्रमाण पत्र निश्चित रूप से के रूप में चिह्नित के रूप में निर्यात और चल बनाम व्यवस्थापक के रूप में. मैं खुश हूँ के साथ एक Windows केवल समाधान

इस बारे में है के रूप में बंद के रूप में मैं मिल गया है

const string NCRYPT_SECURITY_DESCR_PROPERTY = "Security Descr";
const CngPropertyOptions DACL_SECURITY_INFORMATION = (CngPropertyOptions)4;

X509Store trustedPeopleStore = new(StoreName.TrustedPeople, StoreLocation.LocalMachine);
trustedPeopleStore.Open(OpenFlags.ReadWrite);

var certificates = trustedPeopleStore.Certificates.Find(X509FindType.FindByThumbprint, "xxxxxxxxxxxxxxxxxxxxxx", false);

RSA rsa = certificates[0].GetRSAPrivateKey();
RSACng rsaCng = rsa as RSACng;

CngProperty prop = rsaCng.Key.GetProperty(NCRYPT_SECURITY_DESCR_PROPERTY, DACL_SECURITY_INFORMATION);

मैं देख सकते हैं rsaCng.कुंजी में मौजूद डीबग करें, लेकिन यह विफल रहता है, अगली पंक्ति पर (यह निश्चित रूप से है निर्यात) की संपत्ति हो रही के साथ Internal.Cryptography.CryptoThrowHelper.WindowsCryptographicException: 'Key not valid for use in specified state.' मैं भी पढ़ा टिप्पणी है कि तुम नहीं करना चाहिए स्थापित करने की कोशिश एसीएल पर सीधे फाइल है, लेकिन अगर नहीं यकीन है कि सही है या नहीं

.net acl c# cng
2021-11-24 00:59:41
1

सबसे अच्छा जवाब

0

देखें इस कोड परियोजना की पोस्ट के लिए कुछ उदाहरण कोड है कि अनुदान के लिए पहुँच प्रोग्राम (विशेष रूप से "देखो AddAccessToCertificate" विधि) ।

इस की जाँच करें: अधिक जानकारी के लिए प्रोग्राम के रूप में जोड़ने के लिए प्रमाणपत्र की निजी दुकान

2021-12-02 16:48:54

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................