如何在DNN模块中实现许可证功能

时间:2017-06-17 11:52:13

标签: dotnetnuke dotnetnuke-7

我需要在dnn Module中实现三种不同类型的许可证。

1)1个DNN门户网站(标准)。

2)1个DNN安装中的20个门户(专业)。

3)无限制的DNN安装和门户(企业)。

请告诉我们如何实现此功能。

1 个答案:

答案 0 :(得分:1)

您必须根据自己的需要定制系统,但这里有一些提示:

  1. 您将需要许可证文件,您可以使用RSACryptoServiceProvider和SignedXml类使用签名的XML文件。这使您可以创建可在客户端上读取的许可证文件,但无法在客户端上对其进行修改。它只能在您的许可证服务器上使用您的私钥进行修改。无论您在许可证文件中放置什么来跟踪许可证的有效使用,都取决于您。你可以把像SKU这样的东西用来匹配产品,portalID来匹配你的20个门户网站。
  2. 您如何知道是否有人试图通过将许可证文件复制到另一台服务器来欺骗您的许可证?我使用数据库连接字符串的哈希值。如果不匹配,我将使许可证无效。是的,有人可以“复制”多个环境,但这很难做到。
  3. (与#2一起)用户将更改服务器,更改主机,确保您对此进行说明。你不希望他们在星期五使他们的许可证无效,然后支持人员直到星期一才回答他们的帮助。
  4. 不要搞砸你的用户。 99.9%的人是诚实的,如果他们做了使你的许可证失效的事情,假设他们并没有试图把你的许可证放在你身上。如果许可证无效,我只会禁用后端管理员端,我会让font-end完全正常运行,这样他们的最终用户就不会知道出现了什么。
  5. 试用:在许可证系统中为TRIALS添加一些功能很好。
  6. 用户希望在测试/ QA服务器上使用它。您是否对此收费取决于您,我没有,因此我的许可证系统允许“例外”。
  7. 不要使用服务器名称/ ip,因为如果有人拥有webfarm,这可能会导致问题。
  8. 假设它不会失控,当有人激活许可证时,请给自己发送电子邮件,保留激活历史记录并将其放入电子邮件中。因此,如果看起来很腥,你可以快速告诉。