3

Management has asked us to look into implementing licensing features into some existing applications. Up to this point these apps were simply paid for and customers could install them as they please. We need to implement a new licensing model to generate more revenue because our older products work well enough that people do not have a reason to upgrade. So our new customers will have to pay licensing fees and/or be limited to how many installations they can have. I have never dealt with this stuff before, so please pardon my ignorance. I need as much guidance as possible (steering me in the right direction would be great!). We need the following...

  1. Time limited demo versions. When they install the software, it works with full features for a fixed amount of time. After that, when they try to run it, it tells them their license has expired.
  2. Licensing option that limits the app to run on a particular machine.
  3. Licensing option that limits the app to being run by a particular user.
  4. Licensing option that limits the app to a certain total number of users or concurrent users.

Number one is pretty simple to figure out, but I have no idea how to go about implementing the other three. Any advice is greatly appreciated.

Josh Stodola
  • 81,538
  • 47
  • 180
  • 227

2 Answers2

3

I would look at 3rd party solutions for this honestly. There are a lot of concepts intrinsically involved in licensing, and for the cost of one week of development time you can buy a fully featured licensing product to integrate into your stuff. This is a case where writing your own is probably not worth the hassle.

I've previously used the Desaware licensing system for user and machine based licensing. Works well enough, no complaints. I believe their framework will be robust enough to handle all 4 of your requirements. http://www.desaware.com/products/licensingsystem/index.aspx

womp
  • 115,835
  • 26
  • 236
  • 269
  • Thanks, that looks like a very flexible package! I am concerned about the client licensing (no pun intended!) though. Does that really mean that every customer needs to pay for a client license?! Maybe I am mis-interpreting. How much work was it for you to integrate? – Josh Stodola May 16 '11 at 23:53
  • We built a wrapper around the licensing framework, and then it was really, really easy to license individual "components" (mainly web controls) by including our licensing wrapper and calling a "check license" function when the first instance was loaded into memory. I don't think every customer needs to pay, I believe you can license out based on hardware rather than users... but our product was a per-client license so we didn't explore a lot of the framework. Probably best to get desaware on the phone, or check out their 30 day trial. – womp May 18 '11 at 17:24
0

All these scnarios can be pretty complicate to implement and get just right (and hassle-free). Instead of wasting your time on this, consider using a commercial licensing solution like CryptoLicensing. It supports all the scenarios you want including trials, machine-locked, user-locked and floating/concurrent.

DISCLAIMER: I work for LogicNP Software, the developers of CryptoLicensing.

logicnp
  • 5,796
  • 1
  • 28
  • 32
  • How can one use your `CryptoLicensing For .Net` utility with `e-junkie` as explained here: [Using e-junkie to sell generated code](http://www.e-junkie.com/ej/help.keygen.htm). – nam Dec 31 '16 at 19:44