Question

For my VB.NET applications, I am wanting the user to have a free trial for x amount of days.

Where is the best place to record the amount of days past? In the registry? Can't someone just delete the registry key, and then have the full x amount of days again?

Is there a better way?

Was it helpful?

Solution

Anything you store on the user machine could be compromised.
If you are serious about this thing then your "best" option is to have a webservice that your apps call at every startup passing some form of identification string.
(And this could be compromised too).

For the purpose to generate an identification string you could look at this question and the following answers

OTHER TIPS

It doesn't matter where you store something on the local machine because it can always be removed.

A user could start up a Virtual PC install your app, and then roll back the virtual PC after 28 days and install again.

One option is to generate a key that is unique to the machine and then verify this with a web service. This is not completely hacker proof but it is better.

You could add some information to any file saved with the trial version of your app which is unique to that specific version of the app (perhaps a timestamp from when it was installed).

When a trial version of your app tries to open a file, it will check this signature and ensure that it was created with that same instance, otherwise refuse to open the file.

This essentially neuters the ability to simply reinstall the app and continue using it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top