Skip to Content
Nuova versione 12 disponibile 🎉
LicensingModalitĂ  di licenzaAttivazione della licenza

Attivazione della licenza

L’attivazione della licenza è un metodo molto diffuso per controllare la distribuzione e l’utilizzo delle licenze software. Babel Licensing usa l’attivazione della licenza per distribuire e attivare in modo sicuro le licenze delle tue applicazioni .NET. Questa pagina mostra come creare una licenza nel Babel Licensing Service con Babel Desktop e come configurare un’applicazione client .NET per attivarla con la libreria Babel Licensing.

Prerequisiti

Per abilitare l’attivazione della licenza nel Babel Licensing Service, segui questi passi. Per prima cosa assicurati che il Babel Licensing Service sia attivo e in esecuzione sul tuo server, secondo le istruzioni della sezione Per iniziare. Poi crea un prodotto di test e il relativo modello di licenza seguendo le istruzioni riportate di seguito. Avrai così la base per generare le licenze con attivazione.

Poi devi scaricare da GitHub il codice sorgente del client per l’attivazione della licenza. Questo codice client serve a integrare l’attivazione della licenza nella tua applicazione .NET.

git clone https://github.com/babelfornet/license-activation-console-example.git

La creazione di una licenza con attivazione per questo esempio richiede di configurare un modello di licenza adeguato nel sistema Babel Licensing. Il modello fa da schema per tutte le licenze che genererai, e ne garantisce la coerenza e la corretta configurazione.

Creare una licenza con attivazione

Babel Desktop si connette al Babel Licensing Service e ti permette di creare e configurare le licenze delle tue applicazioni. Puoi specificare vari dettagli della licenza, come l’intestatario, la data di scadenza e le funzionalità consentite. Puoi inoltre impostare restrizioni sull’attivazione, come il numero massimo di attivazioni.

Per registrare una licenza con attivazione in Babel Desktop, segui questi passi:

Connettiti al servizio

Apri Babel Desktop e fai clic sull’icona del profilo del tuo Babel Licensing Service nella barra attività. Per generare le licenze serve un profilo Test locale con Gestione locale, quindi esegui Babel Desktop sul computer del servizio; per un servizio remoto usa l’applicazione web o la Management API.

Genera una licenza

Apri la vista Licenze e scegli Genera licenza nella barra degli strumenti.

Seleziona il modello e la chiave di firma

Nel gruppo Modello, seleziona il Modello di licenza creato nel paragrafo precedente (vedi Modelli di licenza) e la Chiave di firma. Se non selezioni una chiave di firma, viene usata quella del modello o del suo prodotto.

Imposta la modalitĂ  su Attivazione

Nel gruppo Termini, imposta ModalitĂ  su Attivazione.

Imposta il numero di attivazioni

In Sedi, inserisci il numero di attivazioni disponibili per questa licenza.

Genera la chiave utente

Nel gruppo Informazioni licenza, premi il pulsante Genera all’estremità destra del campo Chiave utente. Questa chiave utente servirà ad attivare la licenza su un computer specifico.

Inserisci l’intestatario e i dettagli della licenza

Inserisci i dati dell’intestatario (è obbligatorio il nome dell’intestatario o l’azienda) e gli eventuali Campi, Funzionalità o Restrizioni aggiuntivi che vuoi per questa licenza.

Seleziona il formato

Seleziona il Formato della licenza: XML, Firma XML, ASCII o Base32.

Salva la licenza

Salva il modulo. Il servizio genera e firma la licenza.

La chiave pubblica estratta dal file Keys.snk, necessaria per la convalida della licenza, è già configurata nel codice sorgente dell’esempio.

La licenza con attivazione appena registrata compare ora nella griglia delle licenze con una chiave di licenza univoca e altre informazioni pertinenti. Con l’edizione Data Center puoi creare le licenze con attivazione anche nella pagina Licenze dell’applicazione web.

Una volta registrata la licenza con attivazione, il cliente può attivare la licenza sul proprio computer fornendo la chiave utente e, se previsto, l’ID computer. Il Babel Licensing Service convalida le informazioni ed emette un token di licenza legato a quel computer specifico, che permette l’esecuzione del software. Ogni attivazione conta ai fini del limite di token del servizio; vedi Token di licenza.

Configurare un client

Una volta creata la licenza nel Babel Licensing Service, devi configurare la tua applicazione client .NET perché attivi la licenza. Per farlo, integra la libreria Babel Licensing nella tua applicazione e implementa il codice necessario per attivare la licenza. La libreria Babel Licensing fornisce un insieme di API e metodi che semplificano il flusso di attivazione della licenza e garantiscono una convalida sicura della licenza.

Per aprire il progetto di esempio dell’attivazione della licenza, segui questi passi:

Apri la soluzione

Vai nella posizione in cui è salvato il progetto di esempio dell’attivazione della licenza e fai doppio clic sul file di soluzione ClientActivation.sln per aprirlo nel tuo ambiente di sviluppo integrato (IDE) preferito, per esempio Visual Studio.

Controlla il riferimento alla libreria client

Una volta aperto il progetto, assicurati che il riferimento alla libreria client di Babel Licensing sia corretto. Se il riferimento manca, consulta il paragrafo Componenti client per configurare un repository NuGet locale.

Compila la soluzione

Dopo aver verificato i riferimenti, compila la soluzione selezionando l’opzione “Build” o “Rebuild” dal menu dell’IDE.

Esegui l’applicazione

Quando la soluzione è stata compilata correttamente, puoi eseguire l’applicazione in configurazione di debug premendo il pulsante “Start Debugging” o usando la scorciatoia da tastiera del tuo IDE (per esempio F5 in Visual Studio). L’applicazione di esempio dell’attivazione della licenza si avvia e ti permette di interagire con le funzioni di licenza e di provare il processo di attivazione della licenza.

Console dell’attivazione della licenza

Inserisci la chiave di attivazione

Inserisci la chiave di attivazione generata per la licenza e premi ENTER.

Se la chiave di attivazione è valida e corrisponde a quella impostata per la licenza, la licenza viene attivata correttamente.

Ora puoi disattivare la licenza oppure chiudere l’applicazione premendo “n”.

Chiudi o disattiva l’applicazione

Premi “n” e poi ENTER per chiudere l’applicazione.

Se riavvii l’applicazione, vedrai che la licenza è ancora attiva. Questo perché il client è stato configurato per mantenere una cache locale delle informazioni della licenza. Il client contatta il server solo una volta ogni 5 giorni per eseguire la convalida remota della licenza. Questo meccanismo di cache permette all’applicazione di continuare a funzionare anche se la connessione al server è temporaneamente non disponibile.

Segue il codice sorgente completo dell’esempio di attivazione della licenza:

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; }

La classe BabelLicensing viene istanziata per comunicare con il server delle licenze. Nella configurazione del servizio vengono assegnati la chiave pubblica per convalidare la licenza e l’URL per comunicare con il servizio.

Poi viene creata un’istanza della classe BabelServiceLicenseProvider, che viene registrata presso BabelLicenseManager. Questa classe si occupa di mantenere in cache una copia locale della licenza per l’uso offline. La proprietà LicenseRefreshInterval stabilisce ogni quanto la licenza deve essere aggiornata dal server.

Il codice controlla se la chiave utente (la chiave della licenza con attivazione) è stata inserita. Se non è impostata, significa che la licenza non è ancora stata attivata.

Se la chiave utente non è impostata, il codice chiede all’utente di inserire la chiave della licenza con attivazione e tenta di attivare la licenza contattando il server.

Il codice procede poi a convalidare la licenza con il metodo ValidateAsync di BabelLicenseManager. Questo metodo controlla la validità della licenza e, se la copia locale della licenza è scaduta, contatta il server per la convalida.

Dopo aver convalidato la licenza, il codice chiede all’utente se vuole disattivarla. Se l’utente conferma la disattivazione, il codice chiama il metodo DeactivateLicenseAsync del client BabelLicensing per disattivare la licenza.

Nel complesso, il codice mostra come interagire con la libreria client di Babel Licensing per gestire l’attivazione, la convalida e la disattivazione della licenza in un’applicazione client.

Il processo di attivazione della licenza offre diversi vantaggi, tra cui una maggiore sicurezza, perché garantisce che solo gli utenti autorizzati possano attivare e usare il software con licenza. Ti permette anche di tracciare e gestire le attivazioni delle licenze, con informazioni utili sulle abitudini di utilizzo della tua applicazione. Con l’attivazione della licenza di Babel Licensing puoi garantire il rispetto dei termini di licenza e mantenere il controllo sulla distribuzione e sull’utilizzo del tuo software.

Per usare l’attivazione della licenza, crea le licenze con Babel Desktop o con l’applicazione web e configura la tua applicazione client perché le attivi. Il servizio fa quindi rispettare le condizioni di licenza e aiuta a proteggere la tua proprietà intellettuale.

Last updated on