2017-06-17 47 views
-3

我需要在dnn模块中实现三种不同类型的许可证。如何在DNN模块中实现许可

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

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

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

请让我们知道如何实现此功能。

+2

我会先写一些代码。 – Puppy

+0

你好,这个网站是为人们寻求帮助的代码。您需要尝试获得您的解决方案,然后发布您遇到的问题。也许你应该谷歌一些解决方案,并尝试其中的一些。 请参阅:https://stackoverflow.com/help/how-to-ask –

+0

我已在我的模块中实现了许可证。在此模块中,我必须存储Dnn主机相关设置。例如。 GUID,HostURL,ServerName,Ipaddress。我已经使用上述declare filed.1)1 dnn Portal - 我有匹配当前dnn实例与主机url。 2)在1 DNN安装20个门户网站 - 我有匹配的GUID和主机url与当前dnn实例.3)无限的DNN安装和门户网站 - 我有匹配服务器名称和服务器ip与当前dnn实例。 – user2156791

回答

1

您必须将系统满足你的需要,但这里有一些提示:

  1. 您将需要一个许可文件,您可以使用使用的RSACryptoServiceProvider和SignedXml类已签名的XML文件。这使您可以创建一个许可证文件,您可以在客户端上读取该许可证文件,但无法在客户端上对其进行修改。它只能在您的许可证服务器上使用您的私钥进行修改。无论您在许可证文件中如何跟踪许可证的有效用途,都取决于您。您可以将SKU等产品与portal产品进行匹配,以匹配您的20个门户网站。
  2. 您如何知道某人是否试图通过将许可证文件复制到另一台服务器来欺骗您的许可证?我使用数据库连接字符串的散列。如果不匹配,我会使许可证无效。是的,有人可以“复制”多种环境,但这很难做到。
  3. (与#2一起)用户将更改服务器,更改主机,请确保对此进行解释。你不希望他们在星期五使他们的许可失效,然后支持直到星期一才回答他们,帮助他们。
  4. 不要把你的用户搞砸。 99.9%的人是诚实的,如果他们做了使你的许可证无效的事情,假设他们不想把重点放在你身上。如果许可证无效,我只能禁用事物的后端管理端,因此我将字体端功能保留为全功能,以便他们的最终用户不会知道某些事情已经结束。
  5. 试用版:将TRIALS的某些功能放入许可证系统很不错。
  6. 用户将希望在测试/ QA服务器上使用它。无论您收取费用取决于您,我都不会,所以我的许可证系统允许“例外”。
  7. 请勿使用服务器名称/ IP,因为如果某人拥有网站,这可能会导致问题。
  8. 假设它不会失控,当有人激活许可证时发送自己的电子邮件,保存激活历史并将其放入电子邮件中。所以如果有些东西看起来很腥,你可以很快说出来。
+0

感谢您的重播。我已经通过WebAPI调用实施了许可证验证。 如果有人试图更改主机或服务器名称,那么在webapi调用响应无效并且获取具有无效许可证密钥的错误消息之后。 我必须实现电子邮件功能以及与GUID和其他值的组合生成唯一的密钥。 因此,我认为我的实施都与您的重播相同,也尝试按照您的说法执行得更好。 再次感谢我的问题。 – user2156791