代码之家  ›  专栏  ›  技术社区  ›  Roy Tang

如何实施站点范围的许可证?[关闭]

  •  3
  • Roy Tang  · 技术社区  · 15 年前

    我们有一个小的.NET程序,可以通过单独的许可证进行销售。通过注册一个密钥文件来强制各个许可证,该密钥文件是使用安装程序所用计算机的信息(MAC地址等)生成的。

    现在,我们有一个客户要求获得站点范围的许可证,这样他们就可以尽可能多地部署到他们站点上的机器上。从技术POV来看,我不确定通常的方法是什么;我们的旧方法不起作用,因为我们无法将许可证映射到任何特定于机器的信息。

    有什么建议吗?

    更多细节:

    • 该程序是一个客户端程序,其中包含一个Office加载项
    • 要安装的计算机可以或不可以访问Internet
    • 我们不局限于.NET方法,我只是想了解一下这类事情通常是如何处理的
    5 回复  |  直到 15 年前
        1
  •  4
  •   RickNZ    15 年前

    有一些软件技术,如中央许可证服务器——与DRM的工作方式不同。最佳解决方案在很大程度上取决于你的应用程序的细节以及你的客户愿意容忍的内容。

    然而,在我看来,这方面的行业标准是信任你的客户,并依靠合同条款来防止非法扩散。换句话说,颁发一个许可证密钥。然后,如果有人需要支持或要求升级,请请求相同的许可证密钥。如果一个客户不应该拥有他们所做的关键报告,那么原始客户会因为让软件失控而受到某种惩罚或账单;条款将在与他们签订的合同中详细说明。许多公司最终似乎只是沿着这些路线收集数据,但实际上从来没有像收集惩罚那样做过。

    另一种方法是,您的软件可以ping Internet上的中央服务器(如果可用),并报告其许可证密钥。然后,服务器授权应用程序运行。如果密钥从客户那里泄露,那么旧的密钥就会失效,客户需要更新所有现有客户机。

        2
  •  2
  •   user151323    15 年前

    看看Windows是如何做到这一点的。

    他们有批量许可计划。基本上,他们向客户发送一个许可证服务器,并给他们一个激活服务器的密钥。完成后,服务器将用于发出本地密钥并激活使用这些密钥的本地安装。

    从这里: Windows Server 2008, Volume Activation 2.0 and KMS (Key Management Server)

    密钥管理服务器(KMS)用于建立本地激活服务(密钥管理服务),该服务在您的环境中本地/内部托管。 使用KMS无需单个计算机连接到Microsoft即可激活。

        3
  •  1
  •   Eric J.    15 年前

    如果程序昂贵,并且您估计盗版的风险是中等到高的话,那么概述的其他方法是很好的。

    如果这是一个低成本的东西,并且不太可能被您的被许可人或他们的员工广泛分布,那么实现许可服务器的成本可能不值得。您可以选择使用一个明显的通知,而不是指示程序的授权对象和限制是什么。

    要求客户安装许可证服务器的复杂性也可能破坏交易。您需要平衡这一点以及实现它的时间/成本。

        4
  •  0
  •   Duncan Bayne    15 年前

    理想情况下,您应该考虑一个包括产品激活的许可解决方案。这样,您就可以向公司颁发许可证,并跟踪特定许可证的使用情况。

    您选择的许可解决方案还应支持动态许可证配置,这样,如果您怀疑有欺诈行为,您可以禁用许可证(或其特定功能),该更改将立即对所有已安装的客户机生效。

    最后,许可证应该是唯一可识别的,这样,如果您发现它已被发布到野外,您可以简单地禁用它并向您的客户发布一个新的许可证。

    免责声明和插件:我共同创建的公司生产 OffByZero Cobalt turnkey licensing solution for .NET 这就完成了以上的所有工作。

        5
  •  0
  •   logicnp    15 年前

    实现这一点的最佳方法是在客户网络上的任何一台计算机上部署许可服务器。然后,您的软件将联系许可证服务器(每次启动时或仅作为激活的一部分)以检索许可证以供使用。

    看看我们的 CryptoLicensing 它支持一个现成的客户部署的许可证服务器,不需要客户进行配置-他只需要运行一个exe文件。

    推荐文章