处理.NET应用程序许可的最简单方法是什么?

时间:2011-01-31 18:55:53

标签: c# .net windows-7 licensing

我即将发布我的自由Windows窗体项目。

处理许可的最简单方法是什么?我的目标机器没有互联网访问权限,所以我不认为通过网络服务进行验证将是最好的行动方案。

我只是不希望他们复制我的程序并在其他机器上运行,甚至自己出售。

5 个答案:

答案 0 :(得分:4)

有很多方法可以做到这一点,它们都取决于您的目标受众/部署环境。

由于您无法回家,因此您需要依赖序列号。如果您有客户端/服务器体系结构,那么您可以将注册存储在服务器上,客户端可以检查它们。

如果它只是一个客户端应用程序,那么你可以1)使用序列号2)让它们生成一个串行请求,使用它们的MAC地址或一些其他唯一标识符来确定它们正在安装的机器。这样,当您根据请求发出序列时,它只能在生成请求的计算机上运行。

答案 1 :(得分:1)

你可以使用加密狗,我认为这是最安全的方式。 加密狗可以容纳您的应用程序的敏感部分,并且应用程序将不会运行,直到加密狗插入USB端口,您应该阅读更多关于它,我认为有一个特殊的加密狗应用程序加密狗。 相信我,我们长期在公司使用它。

答案 2 :(得分:1)

如果您的软件条款说明了它的许可方式,那就足够了。

不要忘记,自从你编写了这个软件之后,很可能会因为修复/增强而被召回。这应该为您提供充足的机会,以查看您的许可证是否被滥用。

答案 3 :(得分:1)

有一些混淆解决方案可提供内置的许可安全性。你可以试试其中之一。 XenoCode就是其中之一。 http://www.xenocode.com/

答案 4 :(得分:0)

包含软件的安装程序。此安装程序应设置一些注册表项,以将此计算机标识为具有有效安装;然后,您的程序将询问这些密钥并确定它是否应该运行。

如何制作这些钥匙以及它们应该是什么的问题可以通过你想要的深奥来回答。它们越简单,您就越容易实现,但它们更容易欺骗。如果您只是想让购买许可证变得更容易而不是欺骗安装,那么您可以通过让安装程序需要许可证密钥来实现这一点,该许可证密钥可以被解密为预期的东西(例如用户也输入的名称) )。然后它可以加密并设置一个注册表项,当程序开始确定有效的安装时,它将解密。这可能是欺骗性的,如果没有Internet访问,它就不能证明一个人在许多计算机上没有使用相同的密钥。

如果您想确保每个安装都是单独许可的,那么您必须具有Internet访问权限,因为您的安装程序或程序本身必须与集中式Web服务(或许可证密钥服务器,企业安装)以确定密钥是真实的,当前没有被另一台计算机使用。