计算与客户端Windows操作系统日期和时间无关的当前日期和时间或时间持续时间

时间:2014-05-21 12:19:23

标签: c# windows desktop-application

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

为什么吗

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

让我举个例子: 我在客户机上有一些信息

  1. LastOnlineLoginDate:DateTime
  2. ExpirationDate:DateTime
  3. MaxDaysClientCanLoginOffline:int
  4. 因此,当客户端登录我的应用程序并且他处于脱机状态时,我有两种方法可以检查他的许可证:

    1. 如果ExpirationDate> DateTime.Now 所以他获得了许可,可以继续
    2. 如果LastOnlineLogin +( LastOnlineLogin和Now之间的时间持续时间)< MaxDaysClientCanLoginOffline,因此他获得许可并可以继续
    3. 如果您帮助我 DateTime.Now 计算LastOnlineLogin与现在之间的时间持续时间

      ,我将不胜感激

1 个答案:

答案 0 :(得分:0)

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

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

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

    此致。