To use floating licensing for intranet you need to call the SDK method IntelliLock.Licensing.FloatingLicenseServer.Start(...) on one machine which is part of the intranet. This method initiates code which controls the maximum number of users who can use your software simultaneously. There is an example service build around this method. You can find the source code for the service in the folder:
C:\Users\<YourUserName>\Documents\IntelliLock Example Projects\Floating Licensing For Intranet\
The already compiled service can be found in:
C:\Users\<YourUserName>\Documents\IntelliLock Example Projects\Floating Licensing For Intranet\FloatingLicenseService\bin\Release\
The Release folder contains the following required files:
-
FloatingLicenseService.exe - The compiled service.
-
intellilock project file server.ilproj - The IntelliLock project file you require to protect the compiled service.
-
intellilock project file client.ilproj - The IntelliLock project file you require to protect your software.
Step 1 - Protecting the service
Please open intellilock project file server.ilproj with IntelliLock and replace the master key (tab "Settings") with the one you want to use to protect your software and click the "Finalize" button. This way IntelliLock protects the service and places the protected service in the subfolder FloatingLicenseService_Locked.
Step 2 - Creating a license file for the service
To get the service fully running a license file is required. Remain intellilock project file server.ilproj open and visit the tab "License Generator". You can see the following:
As the service should run on only one machine it is important to hardware lock the license file for the service. For testing purposes you can let the hardware lock unchecked. The service expects to find the following keys in the license file:
-
ConcurrentMaxUser - The maximum number of users who can use your software simultaneously.
-
CountUserPerAppInstance - Set to "yes" to handle each application instance as a separate user and increase the current user count.
-
CountUserPerMachine - Set to "yes" to handle each machine as a separate user and increase the current user count. The number of running application instances is not relevant in this case.
-
FloatingLicenseServiceDisplayName - The windows service display name.
-
FloatingLicenseServiceName - The windows service name.
-
Port - The port number used by the service to communicate with the users / application instances.
-
UserRefreshTimeSeconds - The time span in seconds between pings (your application calls the service).
-
UserTimeoutSeconds - If your application can't reach the service for the defined number of seconds the current runtime license for the user is expired.
While you can use the default settings for most values it is important to use unique values for FloatingLicenseServiceDisplayName and FloatingLicenseServiceName. Create the license file and copy it to the location of your locked service. Now, if you run FloatingLicenseService.exe you can see the following:
Step 3 - Connecting your application to the service
Open the IntelliLock project file for your application. At least one trial restriction must be enabled (tab "Lock Settings"). In tab "License Generator" check "Floating License / Concurrent User" and click the "Setup" button. Check "Intranet" and enter the TCP Uri address displayed in the service application.
Protect your application, create the license file and copy it to the location of your protected application. If you run the protected application it automatically connects to the service.
Further notes
- It is important to use the same master key to protect both, the service and your application.
- You can easily copy the TCP Uri address by using the service menu item Service > Copy Uri To Clipboard.
- You can install the service as Windows service (to run it automatically at Windows startup) using the service menu item Service > Install As Windows Service.
- While the license file for the service should be hardware locked there is no need to do it for your application license file.
- If you want to you can remove the license information for the service license file and hard code it in FloatingLicenseManager.cs.