2011-08-05 19 views
5

यदि मेरे पास 5 लक्ष्य कंप्यूटर हैं और मैं अपने लक्ष्य को उन लक्षित कंप्यूटरों में से एक पर स्थापित करने जा रहा हूं। मैं उपयोगकर्ताओं को अपने एप्लिकेशन को अन्य लक्षित कंप्यूटरों पर कॉपी करने से कैसे रोकूं?सी # आवेदन लाइसेंस घटक और नियंत्रण

यह स्पष्ट करने के लिए, मैं नहीं चाहता कि वे स्थापना के बाद मेरे आवेदन की प्रतिलिपि बनाएँ (उन्हें मेरे एप्लिकेशन को इंस्टॉल किए गए एप्लिकेशन फ़ोल्डर से कॉपी नहीं करना चाहिए)। समस्या अब मैं विजुअल स्टूडियो 2010 सेटअप और परिनियोजन का उपयोग करके अपने एप्लिकेशन को सेटअप और तैनात कर रहा हूं, लेकिन इंस्टॉलेशन के बाद कोई भी मेरे एप्लिकेशन फ़ोल्डर की प्रतिलिपि बना सकता है उदाहरण के लिए, मेरा एप्लिकेशन फ़ोल्डर (एक्सई, डीएलएल, और संसाधन) "प्रोग्राम फ़ाइलें/माईप्लिकेशन" पर रेखांकित करता है । वे वास्तव में उस फ़ोल्डर से अपने आवेदन की प्रतिलिपि बना सकते हैं और इसे अन्य कंप्यूटरों पर पेस्ट कर सकते हैं और फिर इसका उपयोग कर सकते हैं। बेशक, वे इसे कॉपी कर सकते हैं लेकिन मुझे लगता है कि वे मेरे प्रतिलिपि आवेदन का सही उपयोग नहीं कर पाएंगे? क्या उनके आवेदन की प्रतिलिपि बनाने की रक्षा करने का कोई तरीका है? मुझे एक अतिरिक्त कोड लिखना है?

मैं सॉफ्टवेयर वितरण के लिए वास्तव में नया हूं। कृपया मुझे मार्गदर्शन करें कि मुझे क्या करना है। धन्यवाद

उत्तर

8

आप लाइसेंस फ़ाइल पीढ़ी के लिए Rhino Licensing framework का उपयोग कर सकते हैं। इसमें लाइसेंस जेनरेटर क्लास है जिसमें जेनरेट विधि है। यहां ऐसा लगता है:

public string Generate(string name, Guid id, DateTime expirationDate, IDictionary<string, string> attributes, LicenseType licenseType); 

जेनरेट विधि लाइसेंसधारक का नाम लेती है। लाइसेंस के लिए अद्वितीय आईडी जिसे Guid.NewGuid() के रूप में उत्पन्न किया जा सकता है, समाप्ति तिथि और विशेषताएँ शब्दकोश एक ऐसी जगह है जहां आप लाइसेंस फ़ाइल में एक कस्टम कुंजी मान जोड़ी संग्रहीत कर सकते हैं।

जिस तरह से यह काम कर सकता है वह यह है कि, आप लाइसेंस में मशीन की जानकारी एम्बेड कर सकते हैं और सत्यापन चरण में आप यह जांच सकते हैं कि लाइसेंस एक ही मशीन से संबंधित है या नहीं। इसका मतलब है कि आप एक मशीन की लाइसेंस फ़ाइल कॉपी नहीं कर सकते हैं और इसे किसी अन्य मशीन पर रख सकते हैं क्योंकि यह काम नहीं करेगा।

लाइसेंस फ़ाइल आप निम्नलिखित जानकारी स्टोर कर सकते हैं में:

  • लाइसेंस की समाप्ति की तारीख से
  • जिस व्यक्ति के लिए लाइसेंस उत्पन्न होता है का नाम
  • हैश सिस्टम जानकारी के आधार पर गणना
+0

इसका मतलब है कि मुझे प्रत्येक तैनाती के लिए मेरे आवेदन के साथ लाइसेंस बनाना है? –

+0

पहली बार आपको लाइसेंस बनाने की आवश्यकता है। और उसमें आपको समाप्ति तिथि और सिस्टम जानकारी सेट करने की आवश्यकता है। यदि किसी भी मूल्य को बदल दिया गया है या संशोधित किया गया है तो उस मामले में, आपको फिर से आवेदन के लिए एक नया लाइसेंस बनाना होगा। –

2

मैं इन्फ्राउशन लाइसेंस ट्रैकर का उपयोग करता हूं। यह पेवेयर है लेकिन किसी हिस्से या सभी एप्लिकेशन के लाइसेंसिंग की अनुमति देता है। यह ऑनलाइन सत्यापन पर महत्वपूर्ण सत्यापन के लिए भी अनुमति देता है। कुंजी उत्पन्न करने के लिए ग्राहक जानकारी का उपयोग करना संभव है ताकि लक्ष्य कंप्यूटर से जानकारी का उपयोग करके पंजीकरण करना संभव हो।

http://www.infralution.com/licensing.html

0

जब आप यह वास्तव में आसान आप LimeLM उपयोग कर सकते हैं चाहता हूँ। एक परीक्षण विकल्प के साथ सरल ऑनलाइन सत्यापन।

4

उपयोगकर्ताओं को एक से अधिक मशीनों पर एप्लिकेशन चलाने से रोकने का उद्योग-मानक तरीका वास्तव में उस उत्पाद के कुछ मानकों पर आपके उत्पाद को लॉक करना है। हालांकि, आपको भविष्य के काम से बचने या सड़क से ग्राहकों को परेशान करने के लिए निम्नलिखित मुद्दों के बारे में सोचना होगा। क्रूड प्रणाली है कि इन मुद्दों से निपटने नहीं है नोड ताला लगा एक बुरा नाम दे दिया है, लेकिन जब ठीक से किया नोड लॉकिंग, विनीत लचीला है और सुरक्षित:

  • तुम कैसे सही ढंग से प्रणाली मापदंडों प्राप्त करेंगे लॉक कर देगा सेवा मेरे?उपयोगकर्ताओं को पढ़ने/टाइप करने के लिए कहने से त्रुटि का एक आम स्रोत है, उदाहरण के लिए 'ओ' के लिए 'एल' को गलत पढ़ना या 'ओ' के लिए '0'।
  • मैक पता आमतौर पर नोड-लॉकिंग के लिए उपयोग किया जाता है, लेकिन यह एक खराब विकल्प है क्योंकि मैक पते को कई ऑपरेटिंग सिस्टम के तहत व्यवस्थापक द्वारा सेट किया जा सकता है।
  • कहें कि आप सिस्टम के कई मानकों को लाइसेंस लॉक करते हैं। क्या होगा यदि उपयोगकर्ता मामूली सिस्टम अपग्रेड करता है, तो उनमें से एक को बदलने के लिए? यदि आपका ऐप अचानक दौड़ने से इंकार कर देता है तो वे खुश नहीं होंगे।
  • उपयोगकर्ता कुछ समय पर अपने लाइसेंस को एक अलग मशीन पर ले जाना चाहते हैं। आपको यह सोचने की आवश्यकता होगी कि इसे सुरक्षा छेद के बिना आप इसका समर्थन कैसे करते हैं।
  • उपयोगकर्ता मशीनें क्रैश हो जाएंगी - ऐसा होता है। वे अपने नए/पुनर्निर्मित सिस्टम पर फिर से अपना लाइसेंस कैसे प्राप्त कर सकते हैं?

कुछ समाधान जो हमने सामना किए हैं और हमारे समाधानों में निपटाया है। उम्मीद है की यह मदद करेगा।

0

आपको इसे रोकने के लिए मशीन-लॉक/सक्रिय लाइसेंस का उपयोग करने की आवश्यकता है। यह सुनिश्चित करता है कि लाइसेंस केवल एक मशीन से ही मान्य किया जा सकता है - यदि लाइसेंस सत्यापन विफल हो जाता है, तो आप तय कर सकते हैं कि क्या कदम उठाने हैं - ऐप से बाहर निकलने के लिए, उपयोगकर्ता को एक संदेश दिखाएं, अनुग्रह अवधि की अनुमति दें, आदि

CryptoLicensing आज़माएं जो सक्रिय/मशीन-लॉक किए गए लाइसेंस का समर्थन करता है।

अस्वीकरण: मैं क्रिप्टोलिसेन्सिंग के डेवलपर लॉजिक एनपी सॉफ्टवेयर के लिए काम करता हूं।