申请验证执照?

时间:2009-06-30 14:36:08

标签: c# licensing

如果我对我的应用程序强制执行许可限制,比如第一次运行应用程序,那么我的应用程序每次都应检查限制(可能是加密的许可证文件)吗?你是如何设计这个部分的?什么是最好的方法?基本上我想以某种方式节省CPU周期(加密意味着解密等等)。我希望你理解我的关注。

4 个答案:

答案 0 :(得分:1)

这实际上取决于您希望如何在应用程序中处理它,以及您希望为用户采取何种类型的操作。

如果您只检查第一次加载,则需要在某处存储验证的成功/失败,以便您的应用程序知道它是否合法。这成为一个问题,因为您需要验证您的系统是实际存储/更新该信息源的唯一事物。

答案 1 :(得分:1)

取决于它是什么类型的应用程序。

如果它是桌面应用程序,一旦验证了许可证密钥...您可以在某处设置一个位,让您的软件知道它在许可模式下运行。确保该位在应用程序文件夹之外的某个位置(如果有人直接将您的应用程序复制到另一台计算机,那么您的软件将知道它不再获得许可)。

如果您正在尝试使用网络应用,则网站目录中某处的加密许可文件似乎是一种流行的解决方案。该文件包含许可证类型和域名...然后您的Web应用程序会根据每个请求验证许可证(一点点开销,但您可以快速制作该代码)。

答案 2 :(得分:0)

这取决于您真正希望获得许可的安全性。我建议每次应用程序启动时检查许可证密钥 - 这在CPU /内存方面不应太昂贵。如果您只在第一次运行时检查,那么它很容易被黑客攻击,并且可以将密钥一次又一次地移除并安装在另一台计算机上。

答案 3 :(得分:0)

通常,大多数第三方许可解决方案(如FLEXnetRLM)都建议您在每次程序运行时至少验证应用程序许可证。通常,至少做到这一点并不算太贵。

在某些情况下 - 您必须确定这是否适用于您 - 更频繁地进行许可检查是有意义的。例如,某些软件单独许可程序的组件,每次访问该组件时都要检查该组件的许可证。使用商业应用程序,如上面提到的那样,这并不昂贵,因此它很常见。