-4

I need to implement three different type of Licence in dnn Module.

1) 1 DNN portal(standard).

2) 20 portals within 1 DNN installation(professional).

3) Unlimited DNN installations and portals(enterprise).

Please let us know how to implements this functionality.

A.M. Patel
  • 334
  • 2
  • 9
  • 2
    I'd start by writing some code. – Puppy Jun 17 '17 at 14:09
  • hello, this site is for people to get help with code. You need to atttempt your won solution, and then post what problems you are hving with that. Perhaps you should google some solutions and try some of them. see: https://stackoverflow.com/help/how-to-ask – J King Jun 17 '17 at 15:36
  • I have implements Licence in my Module.In this module i have to store Dnn host related setting. E.g. GUID, HostURL, ServerName,Ipaddress. I have use above declare filed.1)1 dnn Portal - I have match Current dnn instance with Host url. 2)20 portals within 1 DNN installation - I have match GUID and Host url with current dnn Instance.3)Unlimited DNN installations and portals - I have match Server name and Server ip with current dnn Instance. – A.M. Patel Jun 19 '17 at 09:27

1 Answers1

1

You will have to tailor the system to your needs, but here are some tips:

  1. You will need a license file, you can use a signed XML file using RSACryptoServiceProvider and SignedXml classes. This lets you make a license file which you can read on the client, but can't modify it on the client. It can only be modified on your license server with your private key. Whatever you put in the license file to track valid uses of the license is up to you. You can put things like SKU to match products, portalID's to match up your 20 portals.
  2. How do you know if someone is trying to cheat your license by copying the license file to another server? I use a hash of the DB connection string. If it doesn't match, I invalidate the license. Yea, someone could "duplicate" multiple environments, but that's tough to do.
  3. (Going along with #2) Users will change servers, change hosts, make sure you account for this. You don't want them to invalidate their license on a Friday and then support doesn't answer them until Monday to help them.
  4. Don't screw over your users. 99.9% of them are honest, if they do something that invalidates your license, assume they are not trying to put one over on you. I only disable the back-end admin side of things if the license invalidates, I leave the font-end fully functional so their end-users won't know something is up.
  5. TRIALS: it's nice to put some functionality for TRIALS in your license system.
  6. Users will want to use it on test/QA servers. Whether you charge for that is up to you, I do not, so my license system allows "Exceptions".
  7. Don't use server name / ip because this can cause issues if someone has a webfarm.
  8. Assuming it doesn't get out of hand, send yourself an email when someone activates the license, keep an activation history and put it in the email. So if something looks fishy, you can quickly tell.
Mike
  • 114
  • 2
  • Thanks for your replay. I have already implements licence validations through WebAPI call. If any one trying to change host or server name then after webapi call response get invalid and getting error message with invalid licence key. I have to implements email functionality as well as generate unique key with combination of GUID and other value. So i think my implementation all most same your replay also try to implement much better as you says. Thanks again for replay my question. – A.M. Patel Jun 19 '17 at 17:51