Reputation: 142
I'm working on building a generic and reusable software license registration library that will be embedded into multiple products. I'm thinking of writing an Enterprise Library for this, and would like to get some better suggestions here.
The mechanism will be some sort of plugin which will drive the registration mechanism of the product in which it is implemented. The product will generate it's GUI for the registration form, but the business logic for license generation and validation will be written on the separate project. This project will just be referenced to or "plugged" into the main product to drive the license mechanism.
Could I get some strong architectural patterns to build this project around?
Upvotes: 8
Views: 6512
Reputation: 17618
Check out the detailed documentation for the Desaware licensing system. After investigating and implementing it, I think that it is well-designed and contains several good design principles and patterns.
Specifically:
Upvotes: 2
Reputation: 1646
Create a private key and public key concept.
Let your host application have one predefined key and same key will be with the consumer product.
On consumer side, the host application has to check the combination of public key and private key. Define the work flow algorithm that will be harder for someone to decode. Also embed the the library into the project so that the assembly can not be found to the user.
You will get code for implementing above flow on following link:
Implementing Licencing mechanism for a Software
And for more discussion over license, you can follow the link below :
http://www.otc.utexas.edu/SoftwareAndCopyrights.jsp
Upvotes: 10