रहा है मैं प्रोग्राम के NetworkService अनुमति देने के लिए एक प्रयास में निम्नलिखित कोड का उपयोग कर रहा खाता त्रुटि, लेकिन कुंजी कंटेनर की अनुमतियों पर कोई प्रभाव नहीं पड़ता है।प्रयास एक प्रमुख का उपयोग करने की कोई प्रभाव नहीं
हालांकि, कमांडलाइन उपकरण का उपयोग कर एक ही बात करने के लिए aspnet_regiis, पूरी तरह से काम करता है:
aspnet_regiis -pa "MyEncryptionKey" "NetworkService"
मैं पूर्ण व्यवस्थापक अधिकार के साथ चल रहा हूँ - अगर मैं उन अधिकारों के साथ चलाने के नहीं है, तो एक अपवाद है फेंक दिया। मैं उस उपयोगकर्ता के रूप में भी चल रहा हूं जिसने शुरुआत में कुंजी बनाई थी। सिड, एस-1-5-20 इस सूची में जोड़ा जाता है
S-1-5-18 -> LocalSystem
S-1-5-32-544 -> Administrators
S-1-5-5-0-135377 -> MyUser
aspnet_regiis साथ
,:
कुंजी कंटेनर हमेशा निम्न पहुँच नियम हैं। मैं कोड से इसे प्रभावित नहीं कर सकता।
मैंने स्ट्रिंग प्रारूप में एसआईडी से सुरक्षा पहचानकर्ता बनाने के साथ-साथ AddAccessRule के बजाय SetAccessRule का उपयोग करने का प्रयास किया है।
कोई विचार कैसे कोड से इस एसीएल सूची को वास्तव में प्रभावित करने के लिए?
दुख की बात है कि सभी दृढ़ विधियों की रक्षा की जाती है। –
ऐसा लगता है कि आपको CspParameters का उपयोग कर प्रदाता बनाने से पहले सुरक्षा को संशोधित करने की आवश्यकता है। सीएसपी पैरामीटर, जब RSACryptoServiceProvider को पास किया जाता है, तो लगातार बने रहें। एक एपीआई बनाने के लिए बहुत ही अजीब तरीका है, लेकिन दस्तावेज़ीकरण के अनुसार, ऐसा लगता है कि यह कैसे काम करता है। प्रतिबिंबित करने के लिए अद्यतन उत्तर। – jrista
मुझे सही रास्ते पर मिला। ऊपर इस्तेमाल किए गए CryptoKey सुरक्षा संपत्ति शून्य है, तो फेंकता है। आप एक नया बना सकते हैं, लेकिन यह पहले से मौजूद किसी भी अनुमति को मिटा देता है (यह पहला वास्तविक प्रभाव था, इसलिए अब मैं अपने मुख्य कीस्टोर से बंद हूं;)। लेकिन ... यदि आपको कीस्टोर से कुंजी मिलती है, तो RSA.CspKeyContainerInfo (प्रदाता नाम और प्रकार, कंटेनर नाम और CryptoKeySecurity सहित) से मूल्यों की प्रतिलिपि बनाकर एक नया CspParamters बनाएं, फिर आप इसे संशोधित कर सकते हैं, एक और आरएसए बना सकते हैं cspparameters, और voila का उपयोग कर मुख्य वस्तु, सब कुछ किया। सिमल्स ...? –