确定订阅是否仍然有效而不与DateTime.Now进行比较

时间:2011-08-27 22:05:35

标签: c# datetime subscription

这个问题可能很简单,答案很明显,但我现在似乎无法找到解决方案。 我构建了一个应用程序,它有一个很大的缺陷。在我的User类的属性中,我检查用户订阅是否过期。为此,我将订阅的结束日期与DateTime.Now进行比较:

return (DateTime.Compare(DateTime.Now, subEndDate) > 0);

天才用户不需要意识到所需要的只是将Windows日期更改为较早的日期,然后应用程序根本不会过期。所以我认为与DateTime相比,现在不应该这样做,是否有更好的方法可以用来验证订阅日期?

感谢。

此致

4 个答案:

答案 0 :(得分:4)

调用Web服务或检查数据库以确定订阅是否仍处于活动状态

答案 1 :(得分:1)

也许您可以从客户端程序中提取订阅到期逻辑并将其放入外部服务,然后您的客户端应用程序可以连接到不同的服务器并根据传入的用户参数检索到期详细信息?

答案 2 :(得分:1)

这真的重要吗?如果您的产品纯粹基于Web,那么您唯一需要担心的是服务器时间。如果在未经您同意的情况下更改服务器时间,则可能需要担心更大的问题。

如果您的产品是基于桌面的,那么您想要内置多少保护?如果您只想保护您的临时用户,您所拥有的解决方案可能就足够了。如果某人决定盗用您的软件,那么他们可能会成功。如果您想让这些用户更难,一个解决方案就是记录应用程序运行的所有时间。通过这种方式,您可以了解他们正在玩时钟。

答案 3 :(得分:0)

有几个NTP服务器,你可以免费使用......它们会返回确切的时间,而你的临时用户也无法操纵那些......访问它们你有几个选择 - 尽管没有内置: