Activación de licencia
La activación de licencia es un método muy utilizado para controlar la distribución y el uso de las licencias de software. Babel Licensing usa la activación de licencia para distribuir y activar de forma segura las licencias de sus aplicaciones .NET. Esta página muestra cómo crear una licencia en el Babel Licensing Service con Babel Desktop y cómo configurar una aplicación cliente .NET para que la active con la biblioteca de Babel Licensing.
Requisitos previos
Para habilitar la activación de licencia en el Babel Licensing Service, siga estos pasos. En primer lugar, asegúrese de que el Babel Licensing Service está en funcionamiento en su servidor, según las instrucciones de la sección Primeros pasos. Después, cree un producto de prueba y la plantilla de licencia correspondiente siguiendo las instrucciones que se dan más abajo. Con ello tendrá la base para generar licencias de activación.
A continuación, descargue de GitHub el código fuente del cliente de activación de licencia. Este código de cliente sirve para integrar la activación de licencia en su aplicación .NET.
git clone https://github.com/babelfornet/license-activation-console-example.gitPara crear la licencia de activación de este ejemplo hay que preparar una plantilla de licencia adecuada en el sistema Babel Licensing. Esta plantilla sirve de modelo para todas las licencias que genere, lo que garantiza la coherencia y una configuración correcta.
Crear una licencia de activación
Babel Desktop se conecta al Babel Licensing Service y permite crear y configurar licencias para sus aplicaciones. Puede especificar distintos datos de la licencia, como el titular, la fecha de caducidad y las funciones permitidas. Además, puede definir restricciones de activación, como el número máximo de activaciones.
Para registrar una licencia de activación en Babel Desktop, siga estos pasos:
Conectarse al servicio
Abra Babel Desktop y haga clic en el icono del perfil de su Babel Licensing Service en la barra de actividad. Para generar licencias se necesita un perfil Prueba local con Gestión local, así que ejecute Babel Desktop en el equipo del servicio; para un servicio remoto, use la aplicación web o la Management API.
Generar una licencia
Abra la vista Licencias y elija Generar licencia en la barra de herramientas.
Seleccionar la plantilla y la clave de firma
En el grupo Plantilla, seleccione la Plantilla de licencia creada en el apartado anterior (consulte Plantillas de licencia) y la Clave de firma. Si no se selecciona ninguna clave de firma, se usa la de la plantilla o la de su producto.
Establecer el modo en Activación
En el grupo Términos, establezca Modo en Activación.
Definir el número de activaciones
En Sitios, introduzca el número de activaciones disponibles para esta licencia.
Generar la clave de usuario
En el grupo Información de la licencia, haga clic en el botón Generar situado en el extremo derecho del campo Clave de usuario. Esta clave de usuario se usará para activar la licencia en un equipo concreto.
Introducir el titular y los datos de la licencia
Introduzca los datos del titular de la licencia (es obligatorio el nombre del titular o la empresa) y los Campos, Funciones o Restricciones adicionales que quiera para esta licencia.
Seleccionar el formato
Seleccione el Formato de la licencia: XML, Firma XML, ASCII o Base32.
Guardar la licencia
Guarde el formulario. El servicio genera y firma la licencia.
La clave pública extraída del archivo Keys.snk, necesaria para validar la licencia, ya está configurada en el código fuente del ejemplo.
La licencia de activación recién registrada aparece ahora en la cuadrícula de licencias con una clave de licencia única y otros datos pertinentes. Con la edición Data Center también puede crear licencias de activación en la página Licencias de la aplicación web.
Una vez registrada la licencia de activación, el cliente puede activarla en su equipo proporcionando la clave de usuario y, si procede, el id de equipo. El Babel Licensing Service valida la información y emite un token de licencia vinculado a ese equipo concreto, lo que permite ejecutar el software. Cada activación cuenta para el límite de tokens del servicio; consulte Tokens de licencia.
Configurar un cliente
Una vez creada la licencia en el Babel Licensing Service, debe configurar su aplicación cliente .NET para que active la licencia. Para ello hay que integrar la biblioteca de Babel Licensing en la aplicación e implementar el código necesario para activar la licencia. La biblioteca de Babel Licensing proporciona un conjunto de API y métodos que agilizan el flujo de trabajo de activación y garantizan una validación segura de la licencia.
Para abrir el proyecto de ejemplo de activación de licencia, siga estos pasos:
Abrir la solución
Vaya a la ubicación donde está guardado el proyecto de ejemplo de activación de licencia y haga doble clic en el archivo de solución ClientActivation.sln para abrirlo en el entorno de desarrollo integrado (IDE) que prefiera, por ejemplo Visual Studio.
Comprobar la referencia a la biblioteca cliente
Con el proyecto abierto, compruebe que la referencia a la biblioteca cliente de Babel Licensing es correcta. Si falta la referencia, consulte el apartado Componentes de cliente para configurar un repositorio NuGet local.
Compilar la solución
Una vez comprobadas las referencias, compile la solución con la opción «Build» (compilar) o «Rebuild» (recompilar) del menú del IDE.
Ejecutar la aplicación
Cuando la solución se haya compilado correctamente, puede ejecutar la aplicación en la configuración de depuración con el botón «Start Debugging» (iniciar depuración) o con el método abreviado de teclado de su IDE (por ejemplo, F5 en Visual Studio). Se inicia la aplicación de ejemplo de activación de licencia, con la que puede interactuar con las funciones de licencia y probar el proceso de activación.

Consola de activación de licencia
Introducir la clave de activación
Introduzca la clave de activación generada para la licencia y pulse ENTER.
Si la clave de activación es válida y coincide con la definida para la licencia, la licencia se activa correctamente.
Ahora puede desactivar la licencia, o cerrar la aplicación pulsando «n».
Cerrar o desactivar la aplicación
Pulse «n» y después ENTER para cerrar la aplicación.
Si reinicia la aplicación, verá que la licencia sigue activa. Esto se debe a que el cliente se ha configurado para mantener una caché local de la información de la licencia. El cliente solo se pone en contacto con el servidor una vez cada 5 días para realizar la validación remota de la licencia. Este mecanismo de caché permite que la aplicación siga funcionando aunque la conexión con el servidor no esté disponible temporalmente.
A continuación se muestra el código fuente completo del ejemplo de activación de licencia:
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;
}
Se crea una instancia de la clase BabelLicensing para comunicarse con el servidor de licencias. La clave pública con la que se valida la licencia se asigna en la configuración del servicio, igual que la URL para comunicarse con él.
Después se crea una instancia de la clase BabelServiceLicenseProvider y se registra en BabelLicenseManager. Esta clase se encarga de guardar en caché una copia local de la licencia para usarla sin conexión. La propiedad LicenseRefreshInterval determina cada cuánto tiempo se actualiza la licencia desde el servidor.
El código comprueba si se ha introducido la clave de usuario (la clave de la licencia de activación). Si no está definida, significa que la licencia todavía no se ha activado.
Si la clave de usuario no está definida, el código pide al usuario que introduzca la clave de la licencia de activación e intenta activar la licencia poniéndose en contacto con el servidor.
A continuación, el código valida la licencia con el método ValidateAsync de BabelLicenseManager. Este método comprueba la validez de la licencia y, si la copia local de la licencia ha caducado, se pone en contacto con el servidor para validarla.
Después de validar la licencia, el código pregunta al usuario si desea desactivarla. Si el usuario confirma la desactivación, el código llama al método DeactivateLicenseAsync del cliente BabelLicensing para desactivar la licencia.
En conjunto, el código muestra cómo usar la biblioteca cliente de Babel Licensing para gestionar la activación, la validación y la desactivación de licencias en una aplicación cliente.
El proceso de activación de licencia aporta varias ventajas, como una mayor seguridad, ya que garantiza que solo los usuarios autorizados puedan activar y usar el software con licencia. También permite hacer el seguimiento de las activaciones de licencia y gestionarlas, lo que aporta información valiosa sobre los patrones de uso de su aplicación. Con la activación de licencia de Babel Licensing puede asegurar el cumplimiento de los términos de licencia y mantener el control sobre la distribución y el uso de su software.
Para usar la activación de licencia, cree las licencias con Babel Desktop o con la aplicación web y configure su aplicación cliente para que las active. El servicio hace cumplir entonces los términos de la licencia y ayuda a proteger su propiedad intelectual.