2010-11-29 6 views
2

Lassen Sie uns sagen, dass Sie eine Web-Site, die eine Reihe von verschiedenen Modulen zu ihm hat, wie:Licensing Module auf einer Web-Anwendung

  • accouting (Griff Kunden, Rechnungen, etc.)
  • Hinweise und Dokumente (erstellen und verwalten von Dokumenten)
  • Viele mehr ..

Wie würden Sie den Zugriff eines der „Module“ beschränken wenn ein Kunde nicht hat geeignete Lizenz?

Ich habe oft Komponenten gesehen, die mit einer .lic Datei kommt, wie generieren Sie eine davon?

Und wenn Sie eine Methode wie diese verwenden, wirkt sich das auf die Leistung aus?

bearbeiten

Eine andere Sache, die ich dachte, wenn Sie alle Module mit Ihrer Anwendung versenden und Sie wollen nur die Kontrollen zeigen, dass Sie eine Lizenz erworben haben, haben Sie jede Kontrolle auf Gültigkeit überprüfen, müssen oder können Sie irgendwie diese Informationen extrahieren?

Antwort

1

Eine Möglichkeit, dies zu tun, ist ein Array, in dem jedes Flag einem bestimmten Modul oder Feature entspricht. Legen Sie beim Generieren einer Lizenz das Bit-Array gemäß den Modulen fest, die der Kunde erworben hat, und signieren Sie dieses Bit-Array dann mit einem Algorithmus wie RSA. Überprüfen Sie dann in Ihrer Software die Signatur und rufen Sie das Bit-Array ab, um zu bestimmen, welche Module aktiviert werden sollen.

Werfen Sie einen Blick auf CryptoLicensing, die Unterstützung für dieses Szenario hat - Sie können bis zu 2040 Funktionen/Module in jeder generierten Lizenz angeben.

+0

Interessant, haben Sie irgendwelche Dokumentationsvorschläge zur Verwendung von CryptoLicensing oder ähnlichen Dingen? –

+0

Siehe http://www.ssware.com/cryptolensing/demo/features_net.htm Sie können die Testversion von der Website herunterladen - die Testversion wird mit Dokumentation geliefert. – logicnp

4

Sie können eine der vorhandenen Open-Source-Lösungen verwenden, um Lizenzdateien, die Informationen über erlaubte Module/Funktionen zu erzeugen und zu validieren:

Boths Tools ermöglichen es Ihnen, speichern Sie zusätzliche Daten in der Lizenzdatei -> in Ihrem Fall die erlaubten Module.

Mit der Portable.Licensing Lösung, die Sie von Produkteigenschaften oder zusätzliche Lizenzdaten hinzuzufügen, die zulässigen Module verwenden können:

var license = License.New() 
    //... other options 
    .WithProductFeatures(new Dictionary<string, string> 
           { 
            {"Accouting", "yes"}, 
            {"Notes and Documents", "yes"} 
           }) 
    // ... other options 
    .CreateAndSignWithPrivateKey(privateKey, passPhrase); 

Um die Module zu überprüfen:

if (license.ProductFeatures.Contains("Accouting")) 
    // ... 

HAFTUNGSAUSSCHLUSS: ich bin der Autor des Portable.Licensing Open-Source-Projekts

+0

Vielen Dank für Ihre Antwort! Bitte lesen Sie die [FAQ zu Eigenwerbung] (http://stackoverflow.com/faq#promotion) sorgfältig durch. –

Verwandte Themen