CryptoLicensing for .Net is a 100% .Net solution to add licensing, copy-protection, activation and hardware-locking capabilities to your .Net, Windows Forms, WPF, Silverlight, Windows Phone 7, Compact Framework, Xbox and XNA apps and libraries and ASP.Net web sites.
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Creating secure, effective and hassle free trial license strategies for your software
1. Creating Secure, Effective And Hassle-Free Trial License Strategies For Your
Software
Today, customers expect to be able to try out your app before they can make the decision to purchase. As a
software developer, you cannot afford not to make a trial version of your software available for potential customers
to download and try at their own convenience. However, it is equally important that you make the trial version of
the app secure enough so that it is limited in some way in terms of time or functionality, yet provide a way for
customers to evaluate it in a simple and hassle-free way. This article discusses various effective ways to achieve
this goal using the trial or evaluation license functionality of CryptoLicensing, our licensing, copy-protection and
hardware-locking solution for software licensing.
Trial License Limits
Time Based Limits
CryptoLicensing supports creating trial licenses with various time based limits. They are as follows:
Limit Usage Days
This is the most common way to implement trial periods for software. This type of trial license allows you to specify
the the maximum number of days that your software can be used.
Limit Unique Usage Days
Another way to limit trial periods is to allow a maximum number of different unique days that your software can be
used for. This setting is different from the 'Usage Days' setting in that, it allows the user to use your software at
his/her own convenience. For example, the user may use it for the second time 5 days after the first time, and the
third time, 10 days after the second time. This usage is counted as 3 unique days instead of 15 days (number of
days since first use). Depending on the way your software is typically used by evaluation users, you may want to
use such a type of trial license.
Limit Executions
This type of evaluation license allows you to specify the maximum number of times that your software can be used
or executed.
Limit Run-Time
This CryptoLicensing trial license type allows you to specify the maximum run-time (in minutes) that your software
can be used for during any single execution of your app.
Limit Cumulative Run-Time
This trial license type allows you to specify maximum cumulative (over many runs) run-time (in minutes) that your
software can be used for. Note that this setting is different from the 'Limit Run-Time' license type, in that the run-
time of each execution is added (hence cumulative) when determining if the run-time has been exceeded.
Functionality Based Limits
In additional to using a time based limits for evaluation or trial licenses, often it is advisable to limit the
functionality of your software in trial mode. For example, you may disable specific modules or specific features like
printing, import, export, reporting, etc.
2. CryptoLicensing makes it very easy to do this by enabling you to query whether the license is an evaluation license
via a single API method call (CryptoLicense.IsEvaluationLicense). If this method returns true, you know that the
license has one or more time-based trial limits discussed above, and you can then decide how to limit the
functionality of your software.
Deploying Trial Licenses
The most common and preferred way to deploy trial licenses with your software is by hard-coding a trial license
code in the source code of your software. If a full license cannot be found and loaded, the hard-coded trial license
is used and validated instead and used to control the execution of your software. This means that the default
operating mode of your software is the trial/evaluation mode.
Protections Against Common Trial-Bypass Strategies
Multiple Installs
The trial licensing scheme in CryptoLicensing is implemented in such a way that even if the user uninstalls your
software and re-installs it, the trial period is not reset. The trial data is stored in an obscure registry location (this
behavior can be overridden to store to a different/additional location) and the date persists even if your software is
uninstalled and reinstalled. Therefore, the trial periods resumes from where it left off the last time your software
was run.
Date Tampering
Another common way to bypass the trial checks is by rolling back the system date. CryptoLicensing has a special
setting called Enable Tamper Checking which can be used in conjunction with the other trial settings like Max
Usage Days, etc. When this setting is used, CryptoLicensing tracks the date and time when your software was last
used. The next time your software runs, CryptoLicensing checks this with the current system datetime and if a date
rollback is detected, license validation fails.
Verifying System Time Remotely
CryptoLicensing can also verify the current system datetime with a remote server to ensure that the datetime is
not rolled back or otherwise tampered with.
Other Considerations When Using Trial Licenses
Extending The Trial Period
To extend the trial period for potential customers, you can simply generate a new trial license code using
CryptoLicensing and send it to them. Each license code generated by CryptoLicensing is unique and each license
code stores its evaluation data separately, so sending a new trial license code will give potential customers a new
evaluation period. Further, if you wish, the new license code can have different limits (for example, fewer 'Max
Usage Days').
3. Easy Switching Between Trial And Full Version
After customers purchase your software, you should enable them to easily switch to the full version of the
software. This is vastly desirable than requiring them to uninstall the trial version and install the full version as it
reduces the hassle for customers and enhances their user-experience. CryptoLicensing facilitates this easily
because all its license codes, whether trial or full, are unique and self-contained in terms of the settings and limits
they encode.