【问题标题】:Calculate Current Date and Time or Time Duration Independent of Client Windows OS Date and Time计算独立于客户端 Windows 操作系统日期和时间的当前日期和时间或持续时间
【发布时间】:2014-05-21 12:19:23
【问题描述】:

我想要一种方法来获取独立于客户端设备的当前日期和时间,或者计算两点之间的持续时间(例如 5 小时或 6 天)。

为什么?

因为我不想让我的应用程序的用户更改他们的操作系统日期和时间并绕过我的许可策略。

让我告诉你一个例子: 我有一些关于客户端机器的信息

  1. LastOnlineLoginDate : 日期时间
  2. ExpirationDate : 日期时间
  3. MaxDaysClientCanLoginOffline : int

因此,当客户登录我的应用并且他处于离线状态时,我有两种方法可以检查他的许可证:

  1. 如果 ExpirationDate > DateTime.Now 则他已获得许可并可以继续
  2. 如果 LastOnlineLogin+(从 LastOnlineLogin 到现在的持续时间)

如果您能帮助我获取 DateTime.Now计算 LastOnlineLogin 和现在之间的持续时间

,我们将不胜感激

【问题讨论】:

  • 您的应用程序是否允许访问互联网?
  • 您能提供给我们您已经编写的任何代码吗?会很有用的
  • @SriramSakthivel - 我的想法完全正确......从第三方服务器获取时间。
  • 我知道的唯一方法是 Windows 本身用于“试用”验证。这很复杂。如果您无法针对某处的服务器进行验证,那么您不妨认为自己运气不好。事实上,即使可以,通常也很容易创建绕过检查的破解 :)
  • 您还可以存储应用程序使用的最后一个日期时间,并检查应用程序是否在最后一个日期时间“之前”打开(因此捕获它们重置时钟)并阻止加载,但如果用户会不遗余力地非法使用您的应用程序,他们可能会像 Luaan 州那样破解它,这只会惹恼那些为该服务付费的用户。

标签: c# windows desktop-application


【解决方案1】:

似乎没有办法做我想做的事。

所以这里有一些检查日期和时间的方法:

  1. 我将上次登录日期和一些其他信息保存在 Windows 注册表中(这种方法非常依赖于我保存在客户端 Windows 注册表中的数据的加密)。
  2. 在安装时在客户端操作系统上创建并运行 Windows 服务,以侦听 Windows 日期和时间更改事件(这对我的应用程序不利,因为要安装我的应用程序,登录的用户必须是管理员)。李>
  3. 当用户想要登录时,当前日期和时间必须大于上次登录日期(@kevinCook)。
  4. 如果用户离线登录,而应用程序在后台线程中运行,请检查互联网连接以验证用户。

非常感谢。

真诚的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2014-02-18
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多