Ich möchte angelehnt an Windows oder auch Visual Studio unterschiedliche Editionen eines Programmes mit unterschiedlichen Funktionen implementieren (z.B. Standard, Professional, Ultimate). Je nach Edition werden erweiterte Funktionen verfügbar gemacht. Alle erweiterten Funktionen werden Assembly-spezifisch getrennt und im Verbund entwickelt. Im Endeffekt habe ich also nur eine Anwendung. Was muss ich tun, damit die Funktionalitäten jer nach Edition verfügbar gemacht werden oder nicht. Ich benötige einen grundlegenden Lizensierungsmechanismus, der anhand eines bestimmten Schlüssels nur bestimmte Assemblies freischaltet oder sperrt. Wie setze ich sowas möglichst kompakt um? Es muss in jedem Fall unterbunden werden, das nicht lizensierte Funktionen unberechtigterweise freigeschaltet werden.
**... Warte auf Login-Daten, da Passwort vergessen....**
– Gast 07.09.2011
2 Antworten
2
Hallo,
warum nimmst du nicht einfach eine binäre Datei und verschlüsselst sie mit einem beliebigen algorithmus? Denkst dir einfach ein eigenes Dateiformat aus in denen du 3 oder mehr Lizenzschalter einbringst (ultimate, professional, sonstwas).
Dann solltest du noch daran denken dein Verschlüsselungs / Entschlüsselungs Assembly zu kryptosieren, damit nicht jeder der etwas mehr Erfahrung hat mit einem .Net Reflactor hand anlegt. Hierfür kann ich http://www.eziriz.com/ empfehlen.
Ich denke, so würd ich es machen wenn es nicht grade um eine Applikation für Onlinebanking geht...
Wie du schon in deinen tags geschrieben hast, kannst du es als Plugin-Konzept realisieren. Zusätzlich zu einer Lizensierung lieferst du nur die Assemblies der entsprechenden Version aus. Technisch kann das z.B. mit Managed Extensibility Framework realisiert werden. Es gibt aber auch weitere Frameworks für ein Plugin-Konzept. Selbst wenn der Kunde eine höherwertige Version unberechtigter Weise freischalten sollte, fehlt ihm das zugehörige Programm dazu. Das müsste er sich zusätzlich besorgen. :-)