.net 如何强制执行站点范围的许可证?

.net 如何强制执行站点范围的许可证?,.net,licensing,.net,Licensing,我们有一个小的.Net程序,我们出售个人许可证。通过注册使用用于安装程序的计算机信息(MAC地址等)生成的密钥文件来强制执行各个许可证 现在,我们有一个客户请求获得站点范围的许可证,这样他们就可以将其部署到站点上尽可能多的机器上。从技术角度来看,我不确定通常的方法是什么;我们的旧方法无法工作,因为我们无法将许可证映射到任何特定于机器的信息 有什么建议吗 还有一些细节: 该程序是一个客户端程序,其中包括Office外接程序 要安装的计算机可能具有或不具有internet访问权限 我们不局限于.N

我们有一个小的.Net程序,我们出售个人许可证。通过注册使用用于安装程序的计算机信息(MAC地址等)生成的密钥文件来强制执行各个许可证

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

有什么建议吗

还有一些细节:

  • 该程序是一个客户端程序,其中包括Office外接程序
  • 要安装的计算机可能具有或不具有internet访问权限
  • 我们不局限于.Net的方法,我只是想了解通常如何处理这类事情

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

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

      从这里开始:

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


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

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


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

      如果该程序价格昂贵,并且您估计盗版风险为中到高,则概述的其他方法是好的

      如果这是一个低成本的东西,并且不太可能由您的被许可人或其员工广泛分发,那么实现许可服务器的成本可能不值得。您可能会选择使用一个明显的通知,而不是指明该程序许可给谁以及限制是什么


      要求客户安装许可证服务器的复杂性也可能会破坏交易。你需要平衡它和实现它的时间/成本。

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

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

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


      免责声明和插件:我共同创建的公司生产,它可以完成上述所有功能和更多功能。

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

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