目前我们正在开发一个基于Windows的小型应用程序。我们曾经提供试用版许可证,为期30天,在30天到期后,该产品将无法使用。
现在这是我的问题:
想象一下,客户在1月1日下载并安装了该应用程序,到2月1日,试用期将结束。现在1月31日,如果他再次将系统时间更改为1月1日,系统将从头开始计数,因此客户可以通过简单地更改系统时间来延长试用期。
根据社区建议,我们可以检查互联网/日期时间,但作为一个小问题,我们无法通过服务器随机验证许可证,如果用户下线并更改他的系统日期时间,那么将再次出现问题。有没有其他方法可以解决这个问题?
我已经检查了this question。
解决此问题的最佳方法是什么?该产品是C#应用程序。
答案 0 :(得分:8)
根据您的要求,我看到,您无法检查在线服务器的日期。 这对离线系统来说非常明显。
所以,你需要做一些事情 -
以高加密数据的形式设置注册日期和expirydate,并将其保存在注册表数据库中。
每次打开应用程序时,请获取最新的时钟日期并将加密数据保存在注册表中。
确保检查时钟日期和上次使用日期。如果最后一次使用< clockdate,然后一切都很好,但如果使用> clockdate,用户已更改时钟日期。所以,不要更新注册表。
一旦lastusagedate到达失效日期,会弹出一条消息“您的试用期已过期。”
希望这有帮助。
欢呼声
答案 1 :(得分:5)
可能最好的解决方案是使用在线服务器来验证许可详细信息。如果您让应用程序依赖客户端计算机的数据,那么他们总是有可能破坏它。但为此,客户必须具有互联网访问权限