c# - 解决日期时间许可证问题的最佳方法

标签 c# licensing

<分区>

现在我们正在开发一个基于 Windows 的小型应用程序。我们过去提供试用版许可证,期限为 30 天,30 天到期后,产品将无法使用。

现在这是我的问题:

假设一位客户在 1 月 1 日下载并安装了该应用程序,到 2 月 1 日,试用期将结束。现在1月31日,如果他再次将系统时间改成1月1日,系统会从头开始计数,客户只需更改系统时间即可延长试用期。

并且根据社区建议,我们可以检查互联网/日期时间,但作为一个小问题,我们无法通过服务器随机验证许可证,如果用户离线并更改他的system date time,那么又会出现问题。有没有其他方法可以解决这个问题?

我已经查过了this question .

解决这个问题的最佳方法是什么?该产品是一个 C# 应用程序。

最佳答案

根据您的要求,据我所知,您无法检查在线服务器的日期。 这对于离线系统来说是非常明显的。

所以,你需要做一些事情 -

  1. 以高度加密的数据形式设置注册日期和到期日期,并将其保存在注册数据库中的某个位置。

  2. 每次打开应用程序时,获取最新的时钟日期并将加密数据保存在注册表中。

  3. 确保检查时钟日期和上次使用日期。如果上次使用日期 < 时钟日期,则一切正常,但如果使用日期 > 时钟日期,则用户已更改时钟日期。所以,不要更新注册表。

  4. 一旦 lastusagedate 到达到期日期,弹出消息“您的试用已过期。”。

希望这对您有所帮助。

干杯

关于c# - 解决日期时间许可证问题的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15631696/

相关文章:

c# - 在 C# 中从 Ajax 获取值(value)

mongodb - GNU AGPL v3.0(MongoDB)将在商业产品上发布

java - 根据软件许可证标志更改 JAAS 角色

ios - 作为公司员工工作时,每个 iOS 开发人员需要什么(许可/帐户)?

python - pip(或 setuptools、distribute 等)可以列出每个已安装软件包使用的许可证吗?

c# - 事件目录。使用 DACL

c# - 通过 WebReference 或通过实例化在同一网站内使用 Web 服务之间的性能

c# - 同时将 Entity Framework 与 SQL Server 和 SQLite 数据库一起使用

c# - 运行计时器函数时,函数 'Function1' 的监听器无法启动

apache - 我可以在商业发行的游戏中使用 Apache License 2.0 下的字体吗?