2010-12-23 8 views
7

मैं आंतरिक उपयोग के लिए क्लिकऑन एप्लिकेशन को तैनात करने वाला हूं। मैं व्यक्तिगत रूप से उपयोगकर्ताओं के विश्वसनीय समूह में एप्लिकेशन को सौंप दूंगा। मैं समझता हूं कि ClickOnce मेनिफेस्ट पर हस्ताक्षर करना संभव है, लेकिन क्या उपयोगकर्ता को स्रोत पर भरोसा करने की आवश्यकता है?क्लिकऑन: क्या मुझे क्लिकऑनेंस मेनिफेस्ट और असेंबली पर हस्ताक्षर करना है?

मेनिफेस्ट या असेंबली पर हस्ताक्षर करने के लिए डाउनसाइड्स क्या हैं?

उत्तर

7

आपको मेनिफेस्ट पर हस्ताक्षर करने की आवश्यकता होगी, लेकिन असेंबली पर हस्ताक्षर करने की कोई आवश्यकता नहीं है। आपको मैनिफेस्ट पर हस्ताक्षर करने की आवश्यकता है ताकि ClickOnce स्थापना की विशिष्ट पहचान कर सके (आप दो अलग-अलग कुंजियों के साथ एप्लिकेशन पर हस्ताक्षर करके एप्लिकेशन को दो बार इंस्टॉल कर सकते हैं)।

यदि आप केवल एक आंतरिक आवेदन कर रहे हैं, तो आपका प्रमाणपत्र केवल आपके द्वारा बनाए गए प्रमाण पत्र हो सकता है, इसे विश्वसनीय नहीं होना चाहिए।

किसी भी असेंबली पर हस्ताक्षर करने का एकमात्र लाभ यह होगा कि क्लिकऑन डाउनलोड को अनुकूलित कर सकता है और आपके अनुप्रयोगों के अलग-अलग स्टोरेज के बाहर दृढ़ता से हस्ताक्षरित असेंबली स्टोर कर सकता है और कई अनुप्रयोगों में असेंबली साझा कर सकता है। उदाहरण के लिए, यदि आपके पास दो एप्लिकेशन हैं जो दोनों NHibernate के समान संस्करण का उपयोग करते हैं तो क्लिकऑन केवल एक बार असेंबली डाउनलोड करेगा।

+0

जानकारी के लिए धन्यवाद। संभावित रूप से 'टेस्ट सर्टिफिकेट बनाने' का विकल्प मेरा खुद का निर्माण करने के लिए उपयोग करने का विकल्प होगा? – Sergio

+0

वह सर्फिस होना चाहिए। यदि आप .NET 4.0 का उपयोग नहीं कर रहे हैं तो ध्यान में रखना एक बात यह है कि यदि आप प्रत्येक प्रमाणपत्र को बदलते हैं तो आप मौजूदा इंस्टॉलेशन को अपग्रेड नहीं कर पाएंगे, क्लिकऑन इसे एक नई स्थापना के रूप में देखेगा। – Bronumski

+2

यह सख्ती से सच नहीं है। यदि आप .NET 3.5 या .NET 2.0 w/SP-1 का उपयोग कर रहे हैं, तो आप प्रमाणन को अशुद्धता के साथ बदल सकते हैं, और स्वचालित अपडेट का उपयोग कर रहे हैं। तैनाती पर हस्ताक्षर करने का दूसरा कारण यह है कि अपडेट किए जाने पर और इंस्टॉल समय पर हस्ताक्षर की जांच की जाती है, और यदि यह सही नहीं है, तो यह बता सकता है कि फाइलों को गड़बड़ कर दिया गया है। तो यह किसी ऐसे अद्यतन को स्थापित नहीं करेगा जिसे किसी के द्वारा अपहरण या प्रतिस्थापित किया गया है (जैसे मैलवेयर के साथ)। – RobinDotNet