क्या आपकी कंपनी द्वारा हस्ताक्षरित किसी अन्य असेंबली से उपयोग/कॉलिंग को रोकने/कॉल करने के लिए कक्षा/संपत्ति कक्षा/विधि स्तर पर अपनी असेंबली को सुरक्षित करने का कोई तरीका है?अनधिकृत कॉलर्स से सुरक्षित सी # असेंबली
मैं मजबूत नामकरण (जैसे StrongNameIdentityPermission का उपयोग करने) पर किसी भी आवश्यकता के बिना ऐसा करना चाहता हूं और एक असेंबली पर हस्ताक्षर किए जाने के साथ चिपकना चाहता हूं। मैं वास्तव में InternalsVisibleTo विशेषता का उपयोग करने का सहारा नहीं लेना चाहता क्योंकि यह किसी भी बदलते सॉफ्टवेयर पारिस्थितिक तंत्र में रखरखाव योग्य नहीं है।
उदाहरण के लिए:
परिदृश्य एक
Foo.dll मेरी कंपनी द्वारा हस्ताक्षर किए है और Bar.dll बिल्कुल हस्ताक्षरित नहीं है।
फू क्लास ए है बार कक्षा बी है
क्लास ए सार्वजनिक विधि GetSomething() कक्षा बी Foo.A.GetSomething (कॉल करने के लिए कोशिश करता है) है और अस्वीकार कर दिया है
अस्वीकृत एक अपवाद हो सकता है या किसी न किसी प्रकार
परिदृश्य में अनदेखा किया जा रहा दो
Foo.dll मेरी कंपनी द्वारा हस्ताक्षर किए है और Moo.dll भी द्वारा हस्ताक्षर किए गए है मेरी कंपनी।
फू है कक्षा सी
क्लास ए सार्वजनिक विधि GetSomething() कक्षा सी Foo.A.GetSomething (कॉल करने के लिए कोशिश करता है) और
"हस्ताक्षरित" समझाएं। आपने विशेष रूप से मजबूत नामकरण नहीं कहा है, इसलिए आप .NET में उपलब्ध साइनिंग विकल्प के बारे में बात नहीं कर रहे हैं (क्योंकि यह मजबूत नामकरण है)। क्या आप इसके बजाय प्रामाणिक हस्ताक्षर का संकेत दे रहे हैं? –
हस्ताक्षरित लेकिन मजबूत नाम नहीं, मजबूत नामकरण हस्ताक्षर कर रहा है और अधिक। तो यदि आपके पास Verisign प्रमाण है तो आप इसका उपयोग डीएलएल, EXE, या जो भी हो, पर हस्ताक्षर करने के लिए कर सकते हैं। –
सही, तो कोड हस्ताक्षर प्रमाणपत्र के माध्यम से फिर से प्रमाणीकरण हस्ताक्षर? –