【问题标题】:How to implement license functionality in DNN module如何在 DNN 模块中实现许可功能
【发布时间】:2017-06-17 11:52:12
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我先写一些代码。
  • 你好,这个网站是供人们获取代码帮助的。您需要尝试您赢得的解决方案,然后发布您遇到的问题。也许您应该搜索一些解决方案并尝试其中一些。见:stackoverflow.com/help/how-to-ask
  • 我在我的模块中实现了许可证。在这个模块中,我必须存储与 Dnn 主机相关的设置。例如。 GUID、主机 URL、服务器名称、IP 地址。我使用了上面声明的文件。1)1 dnn 门户 - 我已将当前 dnn 实例与主机 url 匹配。 2)1 个 DNN 安装中的 20 个门户 - 我已将 GUID 和主机 url 与当前 dnn 实例匹配。3)无限 DNN 安装和门户 - 我已将服务器名称和服务器 ip 与当前 dnn 实例匹配。

标签: dotnetnuke dotnetnuke-7


【解决方案1】:

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

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

【讨论】:

  • 感谢您的重播。我已经通过 WebAPI 调用实现了许可证验证。如果有人试图更改主机或服务器名称,那么在 webapi 调用响应之后会变得无效并收到带有无效许可证密钥的错误消息。我必须实现电子邮件功能以及生成具有 GUID 和其他值组合的唯一键。因此,我认为我的实现与您的重播几乎相同,也尝试像您所说的那样更好地实现。再次感谢您重播我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-07
  • 2023-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 2017-02-08
相关资源
最近更新 更多