Set Permission Flag remotely

After reading the docs, api and forum I’m a bit confused on this points:

I learned that to choose the license model I need to set the proper Permission Flag in SetProductId(),
flags are four: [LA_USER, LA_SYSTEM, LA_IN_MEMORY, LA_ALL_USERS].

  1. What if I want to change the Permission Flag? I have found no advice on how to manage it from the dashboard. Do I need to recompile my app with a different flag?

  2. I see that in dashboard I control the User Locked checkbox. In the forum I learned that it must be unchecked with LA_ALL_USERS flag, but the Permission Flag is not handled in the same place. What happens if I check the option with any of the 4 Permission Flags? How to safely manage the conflict?

Ideally I would have a single distributable produced by programmers, and let the vendors choose the license model using the Cryptlex dashboard.

Dear Enrico,

Thank you for reaching out.

The permission flags (LA_USER, LA_ALL_USERS, LA_SYSTEM, and LA_IN_MEMORY) are configured entirely within your application using the SetProductId() function and are not managed through the admin portal. If you want to update the permission flag, you would need to update your application and distribute a version that uses the new flag.

To clarify:

  • The permission flag determines where activation data is stored locally on the client machine when a license key is activated.
  • The User Locked option determines whether activations are tied to individual OS users.

For example:

  • LA_USER: If activation is performed using the LA_USER permission flag, the activation is available only to the user who activated it. Other users on the same machine must activate the license separately because LA_USER stores activation data in the user’s path instead of a shared location locally.

    • If the user-locked property is disabled, each user can activate the license separately, but all of them share the same activation on the server, so only one activation is counted.
    • If you want each user activation to consume a separate activation on the server, enable the user-locked property.
  • LA_ALL_USERS: stores activation data system-wide and is intended for sharing a single activation across all users on the machine, once activated by any user on that machine. In this scenario, User Locked is automatically ignored even if set to true.

  • LA_SYSTEM: This mode is intended for applications that run only with administrator privileges. The activation is tied to the administrator account that performed the activation, so different administrator accounts on the same machine need to activate the license key separately. In this case also, each activation via different users on the same machine is counted separately only when user-locked is set to true, otherwise, a single activation is consumed on the server side.

  • LA_IN_MEMORY: is primarily intended for hosted floating licenses where activation data is not persisted after the application exits. In this case, user-locked is not relevant.

To know more about where our SDK stores data locally on the machine, please refer to the following post: Where does Cryptlex store data locally?

Please note that our SDK also provides migration support from LA_USER and LA_SYSTEM to LA_ALL_USERS, however, vice versa is not supported.

For any additional help, please feel free to reach out to our support channel via support@cryptlex.com