473,406 Members | 2,705 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Implementing Licensing Scheme - where to store license info

I'm trying to implement a licensing scheme. There are three types of
licenses:

Trial - good for 30 to 60 days
Interim - good for 1 year
Fully Paid - no expiration

Everything is working fine and I've even implemented a registration system
where the users can upgrade by just receiving a code from me.

My question is on where should I store the license information. I'm
concerned about a couple of things:

1) If I store the info in a front-end table, I can access it immediately
prior to my backend linking routine. BUT, what happens when a new version
of the app is released. This info in the front-end will be lost for each
client and I would have to recreate it for each client before shipping out
the app.

2) If stored in a backend table, I'll have to link to the tables before
checking the license info. My backend is locked down so no one except me can
get into it. So this might work okay.

3) But if the info is in a table, what happens if somehow it is lost or that
particular table gets corrupted. Users with fully-paid licenses might get
upset, because they won't be able to get in.

I guess I could have a hidden form that loads on startup and would
permanently store the license information. But this would require that the
registration routine (when users upgrade) open this hidden form in design
mode and write the license information, wouldn't it??

I'd like some suggestions on how experienced developers would or do handle
the storing of license information. Also, if there are any "failsafe"
mechanisms in case there is a problem retrieving license information.

One note: These clients do not allow the downloading or installation of
executables and we cannot touch the registry.

Thanks in advance.

--
Message posted via AccessMonster.com
http://www.accessmonster.com/Uwe/For...ccess/200603/1
Mar 19 '06 #1
1 3391
rdemyan via AccessMonster.com wrote:
I'm trying to implement a licensing scheme. There are three types of
licenses:

Trial - good for 30 to 60 days
Interim - good for 1 year
Fully Paid - no expiration

Everything is working fine and I've even implemented a registration system
where the users can upgrade by just receiving a code from me.

My question is on where should I store the license information. I'm
concerned about a couple of things:

1) If I store the info in a front-end table, I can access it immediately
prior to my backend linking routine. BUT, what happens when a new version
of the app is released. This info in the front-end will be lost for each
client and I would have to recreate it for each client before shipping out
the app.

2) If stored in a backend table, I'll have to link to the tables before
checking the license info. My backend is locked down so no one except me can
get into it. So this might work okay.

3) But if the info is in a table, what happens if somehow it is lost or that
particular table gets corrupted. Users with fully-paid licenses might get
upset, because they won't be able to get in.

I guess I could have a hidden form that loads on startup and would
permanently store the license information. But this would require that the
registration routine (when users upgrade) open this hidden form in design
mode and write the license information, wouldn't it??

I'd like some suggestions on how experienced developers would or do handle
the storing of license information. Also, if there are any "failsafe"
mechanisms in case there is a problem retrieving license information.

One note: These clients do not allow the downloading or installation of
executables and we cannot touch the registry.

Thanks in advance.

Many years ago, when I first started working with computers, I was a
computer operator. I had access to Master Control. This was a DG
computer. There were 2 levels higher than Master Control when it came
to computer security. The computer operators at the company got into
competive games, sending ClearScreen signals to the other ops, locking
them out of the computer even if they had Supervisory privileges. One
day the games got a little hot and I decided to make one of my opponents
pay dearly. The program to change security permission was called
Predator. I renamed Predator to something else and buried it down a
folder path about 15 levels deep. Then I locked out my opponent to user
level. She laughed at my weak attempt to lock her out. She immediately
tried to activate Preditor...file not found. What? She tried to login
as supervisor. Locked out. What? She went to the master control
terminals. Locked out. So she went crying to the manager, tears
streaming down her face. I had defeated her. After a chewing out, and
my humble apolgies (while secretly gloating), I restored Predator and
unlocked the operator.

So what does this story have to do with your situation? My suggestion
is that you hide your key. I wrote a program a few years ago in Access
to hide the key if I ever wanted to limit a program to a time period. I
own the code to create the key. Even if someone somehow got the code to
unlock my key, which would be supplied in the application, it wouldn't
help much. If they modified it to up their time length, since they
don't know what the real key is, they'd lock out themselves even further.

Where I hide the key is my business. You can find your own hideaway. I
will tell you that I do hide it in a file. When I write the file, I
first get the date created/viewed/modified of the file, modify the file
in such a way that the files length does not change, and when I write it
back, I then update it to the original times. My belief is that the
user, confronted with a file with the same times and length, will
consider the file unchanged. Even if the person knew the file I hid the
unlock key in, they wouldn't know where it is because the key is
scattered throughout the file.

Now if someone gets my code somehow for unlocking the key in the file,
as I said earlier, the method/code that actually creates the key will
never be provided in my database. And without that code, about all the
user can do is spend a hell of a long, long time trying millions of
computations to break it. Most people don't have the patience to try/do
that.

I'm sure there are many other ways to do this...setting up a licensing
scheme. Whether or not you want to get elaborate or not depends upon you.

Mar 19 '06 #2

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

18
by: Adrian B. | last post by:
Does anyone know of a framework or library that will enable me to use publish/subscribe comms? I want to create a server (using Python) running on a Unix box that will accept client connections...
2
by: François | last post by:
Hi, After looking up Microsoft's site for licensing info...and found nothing, I turn to this newsgroup. Does someone know what version of VB .Net you are entitled to use when you are a micro...
5
by: Sandeep Srinivasa | last post by:
hi, I have a software which has licensing (enabled through flexlm). Now, an end user can build apps (As loadable modules) using this base software. I am introducing a new feature, which I am...
74
by: John Wells | last post by:
Yes, I know you've seen the above subject before, so please be gentle with the flamethrowers. I'm preparing to enter a discussion with management at my company regarding going forward as either...
2
by: Christian H | last post by:
Hello, I was thinking of using XML based digital signatures as a licensing scheme in my application: http://www.codeproject.com/dotnet/xmldsiglic.asp As the authtor points out, the public key...
11
by: ML | last post by:
Does anyone have any info on sample code for handling activation/licensing for a vb.net app? Just looking for something fairly basic to implement the ability to have an application registered and...
9
by: vbdotnetmania | last post by:
Hi, I have looked through similar posts and have found Ken Tucker giving the reply about looking at article http://windowsforms.net/articles/Licensing.aspx This appears to be for controls and...
5
by: Nikolay Petrov | last post by:
I would like to store a licensing information in a assembly. It's easy to crypt/decrypt it, but how to stote it, if my app is referencing and using this dll? Is this possible?
102
by: Xah Lee | last post by:
i had the pleasure to read the PHP's manual today. http://www.php.net/manual/en/ although Pretty Home Page is another criminal hack of the unix lineage, but if we are here to judge the quality...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.