Skip to Content
Nueva versión 12 disponible 🎉
LicensingModalidades de licenciaActivación de licencia

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.git

Para 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.

Last updated on