Lizenzaktivierung
Die Lizenzaktivierung ist ein verbreitetes Verfahren, um die Verteilung und Nutzung von Softwarelizenzen zu steuern. Babel Licensing verwendet die Lizenzaktivierung, um Lizenzen für Ihre .NET-Anwendungen sicher zu verteilen und zu aktivieren. Diese Seite zeigt, wie Sie mit Babel Desktop eine Lizenz im Babel Licensing Service erstellen und wie Sie eine .NET-Clientanwendung so konfigurieren, dass sie die Lizenz mit der Bibliothek von Babel Licensing aktiviert.
Voraussetzungen
Um die Lizenzaktivierung im Babel Licensing Service zu nutzen, gehen Sie wie folgt vor. Stellen Sie zuerst sicher, dass der Babel Licensing Service auf Ihrem Server läuft, wie im Abschnitt Erste Schritte beschrieben. Erstellen Sie dann nach der Anleitung weiter unten ein Testprodukt und eine zugehörige Lizenzvorlage. Damit ist die Grundlage für das Erzeugen von Aktivierungslizenzen gelegt.
Laden Sie anschließend den Quellcode des Clients für die Lizenzaktivierung von GitHub herunter. Mit diesem Clientcode binden Sie die Lizenzaktivierung in Ihre .NET-Anwendung ein.
git clone https://github.com/babelfornet/license-activation-console-example.gitUm für dieses Beispiel eine Aktivierungslizenz zu erstellen, richten Sie im System von Babel Licensing eine passende Lizenzvorlage ein. Diese Vorlage dient als Bauplan für alle Lizenzen, die Sie erzeugen, und sorgt für Einheitlichkeit und eine korrekte Konfiguration.
Eine Aktivierungslizenz erstellen
Babel Desktop verbindet sich mit dem Babel Licensing Service, und Sie erstellen und konfigurieren damit Lizenzen für Ihre Anwendungen. Sie können verschiedene Angaben zur Lizenz festlegen, etwa den Lizenznehmer, das Ablaufdatum und die erlaubten Funktionen. Außerdem können Sie Beschränkungen für die Aktivierung festlegen, etwa die Höchstzahl der Aktivierungen.
Um eine Aktivierungslizenz in Babel Desktop zu registrieren, gehen Sie wie folgt vor:
Mit dem Dienst verbinden
Öffnen Sie Babel Desktop und klicken Sie in der Aktivitätsleiste auf das Symbol des Profils Ihres Babel Licensing Service. Zum Erzeugen von Lizenzen brauchen Sie ein Profil Lokaler Test mit Lokale Verwaltung. Führen Sie Babel Desktop deshalb auf dem Rechner des Dienstes aus. Für einen entfernten Dienst verwenden Sie die Webanwendung oder die Management API.
Lizenz erzeugen
Öffnen Sie die Ansicht Lizenzen und wählen Sie in der Symbolleiste Lizenz erzeugen.
Vorlage und Signaturschlüssel auswählen
Wählen Sie in der Gruppe Vorlage die im vorigen Absatz erstellte Vorlage der Lizenz (siehe Lizenzvorlagen) und den Signaturschlüssel aus. Ist kein Signaturschlüssel ausgewählt, wird der Schlüssel der Vorlage oder ihres Produkts verwendet.
Modus auf Aktivierung setzen
Setzen Sie in der Gruppe Bedingungen den Modus auf Aktivierung.
Anzahl der Aktivierungen festlegen
Geben Sie unter Standorte die Anzahl der Aktivierungen ein, die für diese Lizenz verfügbar sind.
Benutzerschlüssel erzeugen
Klicken Sie in der Gruppe Lizenzinformationen am rechten Ende des Felds Benutzerschlüssel auf die Schaltfläche Generieren. Mit diesem Benutzerschlüssel wird die Lizenz auf einem bestimmten Rechner aktiviert.
Lizenznehmer und Lizenzdetails eingeben
Geben Sie die Angaben zum Lizenznehmer ein (der Name des Lizenznehmers oder ein Unternehmen ist erforderlich) sowie alle weiteren Felder, Funktionen oder Einschränkungen, die Sie für diese Lizenz wünschen.
Format auswählen
Wählen Sie das Format der Lizenz: XML, XML-Signatur, ASCII oder Base32.
Lizenz speichern
Speichern Sie das Formular. Der Dienst erzeugt und signiert die Lizenz.
Der aus der Datei Keys.snk extrahierte öffentliche Schlüssel, der für die Lizenzvalidierung nötig ist, ist im Quellcode des Beispiels bereits konfiguriert.
Die neu registrierte Aktivierungslizenz erscheint nun in der Lizenzliste, mit einem eindeutigen Lizenzschlüssel und weiteren Angaben. Mit der Data-Center-Edition können Sie Aktivierungslizenzen auch auf der Seite „Licenses“ (Lizenzen) der Webanwendung erstellen.
Sobald die Aktivierungslizenz registriert ist, kann der Kunde die Lizenz auf seinem Rechner aktivieren, indem er den Benutzerschlüssel und gegebenenfalls die Rechner-ID angibt. Der Babel Licensing Service validiert die Angaben und stellt ein Lizenztoken aus, das an diesen Rechner gebunden ist und die Ausführung der Software erlaubt. Jede Aktivierung wird auf das Tokenlimit des Dienstes angerechnet, siehe Lizenztoken.
Einen Client konfigurieren
Sobald die Lizenz im Babel Licensing Service erstellt ist, konfigurieren Sie Ihre .NET-Clientanwendung so, dass sie die Lizenz aktiviert. Dazu binden Sie die Bibliothek von Babel Licensing in Ihre Anwendung ein und implementieren den Code, der die Lizenz aktiviert. Die Bibliothek von Babel Licensing stellt APIs und Methoden bereit, die den Ablauf der Lizenzaktivierung vereinfachen und eine sichere Lizenzvalidierung gewährleisten.
Um das Beispielprojekt zur Lizenzaktivierung zu öffnen, gehen Sie wie folgt vor:
Projektmappe öffnen
Wechseln Sie zu dem Ort, an dem das Beispielprojekt zur Lizenzaktivierung gespeichert ist, und doppelklicken Sie auf die Projektmappendatei ClientActivation.sln, um sie in der integrierten Entwicklungsumgebung (IDE) Ihrer Wahl zu öffnen, etwa in Visual Studio.
Referenz auf die Clientbibliothek prüfen
Prüfen Sie nach dem Öffnen des Projekts, ob die Clientbibliothek von Babel Licensing korrekt referenziert wird. Fehlt die Referenz, richten Sie ein lokales NuGet-Repository ein, wie im Absatz Client-Komponenten beschrieben.
Projektmappe erstellen
Wenn die Referenzen stimmen, erstellen Sie die Projektmappe über die Option „Build“ oder „Rebuild“ im Menü der IDE.
Anwendung ausführen
Nachdem die Projektmappe erfolgreich erstellt wurde, können Sie die Anwendung in der Debugkonfiguration ausführen. Klicken Sie dazu auf die Schaltfläche „Start Debugging“ oder verwenden Sie die Tastenkombination Ihrer IDE (zum Beispiel F5 in Visual Studio). Die Beispielanwendung zur Lizenzaktivierung startet, und Sie können mit den Lizenzierungsfunktionen arbeiten und die Lizenzaktivierung testen.

Konsole des Beispiels zur Lizenzaktivierung
Aktivierungsschlüssel eingeben
Geben Sie den für die Lizenz erzeugten Aktivierungsschlüssel ein und drücken Sie ENTER.
Ist der Aktivierungsschlüssel gültig und stimmt er mit dem für die Lizenz festgelegten überein, wird die Lizenz erfolgreich aktiviert.
Sie können die Lizenz jetzt deaktivieren oder die Anwendung mit „n“ schließen.
Anwendung schließen oder deaktivieren
Drücken Sie „n“ und dann ENTER, um die Anwendung zu schließen.
Wenn Sie die Anwendung neu starten, sehen Sie, dass die Lizenz weiterhin aktiv ist. Der Client ist nämlich so konfiguriert, dass er die Lizenzinformationen in einem lokalen Cache hält. Er kontaktiert den Server nur einmal alle 5 Tage, um die Lizenz auf dem Server zu validieren. Dank dieses Caches funktioniert die Anwendung auch dann weiter, wenn die Verbindung zum Server vorübergehend nicht verfügbar ist.
Es folgt der vollständige Quellcode des Beispiels zur Lizenzaktivierung:
using Babel.Licensing;
// Create a new configuration object
BabelLicensingConfiguration config = new BabelLicensingConfiguration() {
// Set the service URL
ServiceUrl = "http://localhost:5005",
// Set the public key used to verify the license signature
SignatureProvider = RSASignature.FromKeys("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDE1VRiIdr6fiVZKve7NVgjIvGdRiRx0Mjjm+Yzf6tLbzFnxLs0fat5EoRcubxx0QQQDfydsJBE/fc7cwRWSrE2xK6X4Eb4W8O47pCMjqvTQZfDqQywEZJrLlxpp9hlKz6FDYX4SagrjmP1gdw8olo+n+IBz8ubkNxRhvycikxuDQIDAQAB"),
// Set a unique client ID
ClientId = "my app client id"
};
// Create the client object used to communicate with the server
BabelLicensing client = new BabelLicensing(config);
// Use BabelServiceLicenseProvider to cache a local copy of the license for offline use
BabelServiceLicenseProvider provider = new BabelServiceLicenseProvider(client) {
// Refresh the license by contacting the server every 5 days
// If set to TimeSpan.Zero, the license will be validated every time on the server
LicenseRefreshInterval = TimeSpan.FromDays(5)
};
// Register the license provider with BabelLicenseManager
BabelLicenseManager.RegisterLicenseProvider(typeof(Program), provider);
// Check if the user key was set
if (provider.UserKey == null)
{
// If the user key was not entered, the license has not been activated yet.
// Ask the user to activate the license
Console.WriteLine("Please enter your activation license key: ");
string? userKey = Console.ReadLine();
try
{
await client.ActivateLicenseAsync(userKey, typeof(Program));
Console.WriteLine("License activated.");
}
catch (Exception ex)
{
Console.WriteLine($"Could not activate license: {ex.Message}");
return;
}
}
try
{
// Validate the license
// This will contact the server to validate the license if the local copy is expired
// You can customize the validation interval using the LicenseValidationInterval property
var license = await BabelLicenseManager.ValidateAsync(typeof(Program));
Console.WriteLine($"License {license.Id} valid.");
// Ask to deactivate the license
Console.WriteLine("Do you want to deactivate the license? (y/n)");
string? answer = Console.ReadLine();
if (answer?.ToLower() == "y")
{
try
{
await client.DeactivateLicenseAsync(provider.UserKey);
Console.WriteLine("License deactivated.");
}
catch (Exception ex)
{
Console.WriteLine($"Could not deactivate license: {ex.Message}");
}
}
}
catch (Exception ex)
{
Console.WriteLine($"License not valid: {ex.Message}");
return;
}
Die Klasse BabelLicensing wird instanziiert, um mit dem Lizenzserver zu kommunizieren. In der Konfiguration des Dienstes werden der öffentliche Schlüssel für die Validierung der Lizenz und die URL für die Kommunikation mit dem Dienst zugewiesen.
Anschließend wird eine Instanz der Klasse BabelServiceLicenseProvider erstellt und beim BabelLicenseManager registriert. Sie hält eine lokale Kopie der Lizenz für die Offline-Nutzung im Cache. Die Eigenschaft LicenseRefreshInterval legt fest, wie oft die Lizenz vom Server aktualisiert wird.
Der Code prüft, ob der Benutzerschlüssel (der Schlüssel der Aktivierungslizenz) eingegeben wurde. Ist er nicht gesetzt, wurde die Lizenz noch nicht aktiviert.
Ist der Benutzerschlüssel nicht gesetzt, fordert der Code den Benutzer auf, den Schlüssel der Aktivierungslizenz einzugeben, und versucht, die Lizenz über den Server zu aktivieren.
Danach validiert der Code die Lizenz mit der Methode ValidateAsync des BabelLicenseManager. Diese Methode prüft die Gültigkeit der Lizenz und kontaktiert den Server zur Validierung, wenn die lokale Kopie der Lizenz abgelaufen ist.
Nach der Validierung fragt der Code den Benutzer, ob er die Lizenz deaktivieren möchte. Bestätigt der Benutzer die Deaktivierung, ruft der Code die Methode DeactivateLicenseAsync des Clients BabelLicensing auf, um die Lizenz zu deaktivieren.
Insgesamt zeigt der Code, wie eine Clientanwendung mit der Clientbibliothek von Babel Licensing Lizenzen aktiviert, validiert und deaktiviert.
Die Lizenzaktivierung hat mehrere Vorteile, etwa eine höhere Sicherheit, weil nur autorisierte Benutzer die lizenzierte Software aktivieren und verwenden können. Außerdem können Sie die Aktivierungen erfassen und verwalten und erhalten so Einblick in die Nutzungsmuster Ihrer Anwendung. Mit der Lizenzaktivierung von Babel Licensing stellen Sie sicher, dass die Lizenzbedingungen eingehalten werden, und behalten die Kontrolle über die Verteilung und Nutzung Ihrer Software.
Um die Lizenzaktivierung zu verwenden, erstellen Sie die Lizenzen mit Babel Desktop oder der Webanwendung und konfigurieren Ihre Clientanwendung so, dass sie sie aktiviert. Der Dienst setzt dann die Einhaltung der Lizenz durch und hilft, Ihr geistiges Eigentum zu schützen.