Single user, single activation, multiple machines

Let’s say we are publishing a software that is using node-locked licenses, one activation per license, one license per individual user.

Let’s say that many individual users are using second machines, say a laptop in addition to a desktop, and expect be able to use our software also on these additional machines, though never at the same time.

Now, we publishers wish to encourage our individual end users to install, license and run our software on several different machines of theirs.

But as publishers, we also wish to limit the number of concurrent in-use occupations of this license to only one.

Thus, we prefer to avoid straightforwardly raising the number of activations per license to 2 or 3, since surplus activations may be shared with other end users.

It is reasonable to require end users to close the application on one machine in order to be able to access their licensed seat from another machine. We don’t want our users to have to manually deactivate and activate their license every time they switch devices.

Other softwares work this way. This includes the host application, whose behaviour it would be elegant to mirror.

● In Cryptlex, what is the best approach to delivering this? In case it is not possible straightforwardly, what is the recommended workaround?

Hi @Matheron,

Thank you for reaching out!

To allow a single concurrent device usage among multiple devices of your users, you can implement a hosted floating license with the leasing strategy set to “per-machine” provided that an active internet connection is available continuously.

Please note that the implementation is same for hosted floating licenses as node-locked with the only difference that you will need to call ActivateLicense() at every application start to activate the license and DeactivateLicense() to deactivate the license when the application closes.

In addition to the above, the license key remains stored in the case of a hosted-floating license. Therefore, if a key is present, you only need to call ActivateLicense(). This allows the application to handle the activation seamlessly, eliminating the need for your user to explicitly activate the license.

Furthermore, if the lease duration is configured to a small value, the seat will automatically be freed once the lease expires, even if DeactivateLicense() is not invoked.

Thank you, good answer. This seems straightforward.

If we have follow-up questions, I will return.

You are welcome!

You can also reach out to our support team at support@cryptlex.com