I’ve had numerous requests for the ability to apply the license once with an admin account and have it stored at the system level so that other users can use the license without each having to activate it.
I notice that SetProductId() can take the LA_SYSTEM or LA_USER flags. If I activate the license while in LA_SYSTEM mode will it subsequently work in LA_USER mode, or will it always need to be run with admin permission for this to work?
Any direction you can offer would be very helpful - We’re hoping that this can work in combination with floating licenses, as our product is used heavily in school and maker-space environments where they want to license a handful of machines for use by potentially hundreds of users, with accounts be added and removed constantly. Giving out the license key to everyone is undesirable.
I notice that SetProductId() can take the LA_SYSTEM or LA_USER flags. If I activate the license while in LA_SYSTEM mode will it subsequently work in LA_USER mode, or will it always need to be run with admin permission for this to work?
If you use LA_SYSTEM flag, then the app needs to be invoked using admin permissions, else it will fail to detect the activation data for other users. You can store the license key in some common location (depends on OS) and auto-activate for other users.
In case of on-premise floating license (LexFloatServer) key is only required by the LexFloatServer, clients don’t need the key, they only require server address and port to lease license from.
In case of hosted-floating license, each client needs to know the key. You can add IP/Country restrictions to prevent the key from being used outside of a location or IP (provided they have static IP addresses).
I feel like this issue should be re-visited. I don’t understand why installing the license at a system level should require admin rights to access the license data. There are plenty of examples of applications whose installers ask if you’d like to install for the current user or for all users. Installing for all users doesn’t require running the application with admin rights. Maybe I’m just missing something about how the license information is stored.
It seems to me that the LA_USER and LA_SYSTEM flags should give us (app developers) the ability to require a separate license per user, or allow one license for the whole machine. With the current implementation, not only is that not possible, but we must jump through hoops to avoid having to activate the license for every user on the machine.
When you run the installer, it requires admin permissions hence it is able to write in places wherein non-admin user cannot.
If you enable “user lock” on the license then each user of the OS will consume a separate activation, otherwise all users will share the same activtion.
I want to inform you that you can now activate a license once for all the users on a single machine from any user account. We name such a functionality as System-Wide Activation.
For that to work, please ensure that the license is having the User-Locked property disabled or set to false.
Additionally, make sure to pass the LA_ALL_USERS flag to the SetProductId() function.
Following these steps will activate the license system-wide.
Note: The support for system-wide activations in LexActivator is available from v3.27.0 onwards and is currently supported for Windows Operating System only.