
- Licence code for my visual database how to#
- Licence code for my visual database serial number#
- Licence code for my visual database license#
- Licence code for my visual database Offline#
MD5CryptoServiceProvider _md5 = new MD5CryptoServiceProvider() īyte _checksum = _md5.ComputeHash(_byteIds) Use MD5 to get the fixed length checksum of the ID string GetMotherboardID(), GetDiskVolumeSerialNumber()) īyte _byteIds = (_id) Combine the IDs and get bytes string _id = string.Concat(appName, GetProcessorId(), / /// public static string GenerateUID( string appName)
Licence code for my visual database serial number#
And BASE36 encoding is used to format the checksum into a string like " XXXX-XXXX-XXXX-XXXX" for easier reading and transferring.Ĭopy Code /// /// Combine CPU ID, Disk C Volume Serial Number and Motherboard Serial Number The four parts are concatenated as strings, then checksum is generated via MD5. I think the algorithm to get unique ID for mobile devices shall be different. It has not been used in mobile devices yet.
Licence code for my visual database license#
End User Application verifies the license file and startup.įor now, this solution is only used on PC, also including servers & laptops.
Licence code for my visual database Offline#
This is also an offline step, maybe by mail or USB drivers.
Send back the license file to end user. License Issuer issues the license file based on the Unique ID and license options, i.e., decides to enable which features are based on the purchase and payment. This shall be an offline step which may include additional actions such as purchase and payment. Unique ID will be passed to License Issuer. End User Application generates the Unique ID for the current PC. The below chart describes the main workflow of this licensing solution: Finally, the digital signature solution answers the question. Licence code for my visual database how to#
However, the next question is how to protect this license file since it is just a plain text XML. E.g., user A can only pay for feature A, B & C while user B only want feature A & C, and user C may only pay for feature B.Ī good idea is to put those active features into a XML list and use this list as the license file. The benefit is that the end user can just pay for those features which he/she wants. Bosses want the feature on/off mechanism of the licensing system to be highly flexible, so the idea of pre-defined different editions is not suitable for this purpose. I was working on a project that is a system having many key features, which are expected to be activated or deactivated based on the license provided. So it is a chance for me to do it! Background However, it seems to be no ready-to-use solution or library out there.
For single license mode, PC's unique key is generated based on PC's hardware, and BASE36 algorithm is used to generate the unique key for easier usage.Īs I learnt, the key concept of such a license solution has been introduced years ago, even there are similar articles on CodeProject as well. Supports both single license mode and volume license mode. XML based license file allows it to contain rich information needed by the application. Digital signature technology is used to protect the license file. Well, if this gets you interested, please read on. User use paste the license string into the activation form to activate the application. After license is generated, vendor shall paste the license string into a text file or mail to our user for activation. At our vendor side, there is a license issuer program to issue the license based on the device UID and those features the user bought. User shall give this device UID to our vendor to purchase the license, via either mail or phone. It displays the activation form and shows the current device UID for purchasing a license:. My application launches and finds itself not activated:. So I designed a license solution to make this possible. I had an application having features 1, 2 and 3, and I wanted the user to pay for each feature they like instead of paying for the whole package. Also, updated library version to 1.1.įirst, I'd like to show you a live demo for this solution. No changes to the core library, keep core lib's version as 1.1, and Demo App was updated to version 1.2.Ģ016.9 Thanks to Member 12119377's comments on public key & private key files' protection, so I've modified the library and let the public key & private key files as embedded resource of the assembly to ensure they are unable to be replaced easily. The bug was fixed, you may get the latest codes from CodeProject or GitHub. 2016.11 Thanks for the comments pointing out the missing part for validating UID in the demo.