c# - 如何让我的产品成为 30 天的试用版?

标签 c# security installation trialware

我已经创建了我的产品并为此生成了许可证 key ,但我想在 30 天后询问该 key 。我用注册表值存储日期并在其中添加 30 天。但我发现如果用户将系统日期更改为 30 天前我的逻辑将不起作用。

那么对于试用版软件不检查系统日期,只允许试用30天,有什么解决办法吗?

最佳答案

您可以有另一个注册表项,在每天使用后递增。这样,即使他们更改了计算机的日期,此 key 也会向您的程序表明它已经运行了超过 30 天。

此外,这个值可以加密,这样如果用户试图手动更改它,程序可以拒绝运行,因为它无法解密该值并从中获取有效数字。

为了避免重新安装,您可以将一些信息添加到使用试用版应用程序保存的任何文件中,这些信息对于该特定版本的应用程序是唯一的(可能是安装时的时间戳)。当您的应用程序的试用版尝试打开文件时,它将检查此签名并确保它是使用同一实例创建的,否则拒绝打开文件。这基本上削弱了简单地重新安装应用程序并继续使用它的能力。

但在一天结束时,用户可以完全控制他们的机器,并且可能找到解决任何您想做的事情的方法(除了在您让用户访问保存这些详细信息的 Web 服务之外使用该应用程序)。您可能不应该花费太多精力来阻止那些愿意经历这种额外麻烦的人,而应该花费额外的时间/金钱/精力为那些愿意付费的人改进应用程序。

关于c# - 如何让我的产品成为 30 天的试用版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525378/

相关文章:

c# - ErrorProvider在一个调用上工作,但不在另一个调用上?

c# - Xamarin.Forms 按钮的内容

cocoa - 从 dmg 安装 OS X 应用程序时创建拖放图形

ubuntu - 如何制作比较器 4

c# - 最好的 C# 拼写检查库是什么?

c# - 当 "type ' T' 必须是引用类型时,如何使方法通用”?

ios - 应用程序级别的 iOS 加密

security - Symfony2 - 处理 HTTP/Entity 用户访问限制

security - 即使 Kafka 提供 TLS/SSL 服务,Kafka 能否通过 TCP 与 ZooKeeper 通信?

linux - 从源代码构建包时如何在 ./configure 或 make 中指定位置?