I'm looking for a simple methodology for licensing custom ArcGIS extensions with an installation key or license file. When the user attempts to enable the extension I want to check that they have a valid license before enabling the tools. I’m not sure if this is the best forum for this question but I bet some of my fellow GIS developers have tackled this before.
Using an installation key would be the preferred approach because it seems less hassle, both for me and for the user. I’m sure there are many of ways to accomplish this, but I’m trying to work out the basic process and I have a number of questions about it.
I’m assuming that once the user enters the key during the installation a value gets written to the registry. The registry value is then checked to enable the extension. Is there a better way?
What are the options for generating the installation key? What rules can you create to determine a valid installation key vs. an invalid installation key?
What value should you write to the registry? Perhaps encrypt the installation key and write the encrypted value to the registry. Then when checking that key to enable the extension, decrypt the registry key, and then make sure it meets the same requirement of a valid installation key? I’m not looking for Fort Knox here, but it seems you want the registry key value to be something not completely apparent to someone snooping around.
I've written extensions for ESRI software for years, (back to ArcView 3), without concern for validating licensing. Usually the extension goes to a handful of clients with an associated license agreement text file, and that was it. And, honestly, I prefer it that way. If someone wants to break a licensing agreement they will find a way, so why waste time and energy trying to stop it. However, for a variety of reasons I now need to apply a basic licensing scheme on a few extensions. So, any suggestions or guidance would be greatly appreciated.