我们有一个小型.Net程序,我们出售个人许可证。通过注册使用来自用于安装程序的机器(MAC地址等)的信息生成的密钥文件来强制执行各个许可证。
现在,我们有客户对站点范围许可证的请求,以便他们可以在其站点上部署尽可能多的计算机。从技术POV我不知道通常的方法是什么;我们的旧方法不起作用,因为我们无法将许可证映射到任何特定于机器的信息。
有什么建议吗?
更多细节:
答案 0 :(得分:4)
有一些软件技术,例如中央许可证服务器 - 与DRM的工作方式不同。最佳解决方案在很大程度上取决于您的应用程序的详细信息以及您的客户愿意容忍的内容。
然而,在我看来,该领域的行业标准是信任您的客户,并依靠合同条款来防止非法扩散。换句话说,发出一个许可证密钥。然后,如果有人要求支持或要求升级,请索取相同的许可证密钥。如果不应该有密钥的客户报告他们这样做,那么原始客户会因为让软件失去控制而受到某种惩罚或收费;这些条款将在您与他们签订的合同中详细说明。许多公司似乎最终只是按照这些方式收集数据,但实际上从未实际收集罚款。
另一种方法是您的软件可以ping Internet上的中央服务器(如果可用),并报告其许可证密钥。然后,服务器授权应用程序运行。如果密钥从客户泄漏,那么旧密钥将失效,并且客户需要更新其所有现有客户。
答案 1 :(得分:2)
了解Windows如何做到这一点。
他们有批量许可计划。基本上,他们向客户发送许可证服务器并为他们提供激活服务器的密钥。完成此操作后,服务器将用于发出本地密钥并激活使用这些密钥的本地安装。
从这里开始:Windows Server 2008, Volume Activation 2.0 and KMS (Key Management Server)
密钥管理服务器(KMS)用于建立本地/内部托管在您环境中的本地激活服务(密钥管理服务)。 使用KMS消除了连接到Microsoft以激活的单个机器的任何需求。
答案 2 :(得分:1)
如果该计划费用昂贵并且您估计盗版风险从中等到高,那么其他方法也很好。
如果这是一个低成本的东西而且不太可能被您的被许可人或其员工广泛分发,那么实施许可证服务器的成本可能不值得。您可以选择明确通知,而不是指示程序被许可给谁以及限制是什么。
要求客户安装许可证服务器的复杂性也可能会破坏交易。您需要将其与实施它的时间/成本进行平衡。
答案 3 :(得分:0)
理想情况下,您应该考虑包含产品激活的许可解决方案。这样,您就可以向公司颁发许可证,并跟踪该特定许可证的使用情况。
您选择的许可解决方案还应支持动态许可证配置,因此,如果您怀疑存在欺诈行为,则可以禁用许可证(或其上的特定功能),并且该更改将立即生效至所有已安装的客户端。
最后,许可证应该是唯一可识别的,因此,如果您发现许可证已被释放,您可以简单地禁用它并向您的客户发放新的许可证。
免责声明&插件:我共同创立的公司生产OffByZero Cobalt turnkey licensing solution for .NET,它可以完成以上所有工作。
答案 4 :(得分:0)
执行此操作的最佳方法是在客户网络上的任何一台计算机上部署许可证服务器。然后,您的软件将与许可证服务器联系(每次启动时或仅作为激活的一部分)以检索许可证以供使用。
查看我们的CryptoLicensing,它支持现成的客户部署的许可证服务器,不需要客户进行配置 - 他只需要运行一个exe文件。