c# - 阻止用户更改系统日期/时间

标签 c# .net datetime date

我们有一个 Windows 应用程序 (C# .net),我们将向客户提供安装程序。要求是一旦安装了应用程序,用户就不能编辑系统时间/日期。这是为了确保应用程序生成的日期/报告不被操纵。 我的目标操作系统是 Win-XP 最好的方法是什么?

操作系统是否提供任何工具来做到这一点?

客户端机器是一台独立的机器,不在任何网络上。

提前致谢

最佳答案

如前所述,您可以使用组策略,但它们很容易被规避。此外,如果您的应用这样做,您的客户可能会产生敌意(理所当然)。尽管如此,如果您的应用程序位于封闭网络中,请与系统管理员联系并将其作为策略推出。

如果您确实需要可信时间源,那么这样做:编写一个 Web 服务或使用您的应用程序联系的现有 NTP 服务,并使用该可信服务返回的时间。然后使用签名技术防止事后篡改报告。

缺点:您需要访问互联网。可能是让客户端在他们的网络中设置一个 NTP 服务器(AFAIK Windows 域 Controller 可以自动执行此操作?)并使用它,但客户端可以再次篡改它。

但底线是:联系网络服务以防止篡改或使用组策略使篡改变得容易。无论如何不可能使篡改成为不可能。

关于c# - 阻止用户更改系统日期/时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4553043/

相关文章:

c# - 基于 XSD 创建多个类文件

javascript - mongoDB ISO日期到字符串与moment.js时区转换

datetime - PostgreSQL - 如何将数字字段中的秒数转换为 HH :MM:SS

c# - 针对多个接口(interface)编程

c# - 当第一个组合框获得某个值时自动更新组合框

c# - 嵌套线程排队

c# - 如何使用 MVC3 Razor 格式化 DateTime 属性?

c# - XmlSerializer 不序列化自定义类型

c# - 使用 ObjectDataSource 是一个好的做法吗?

.net - ASP.NET MVC 4 捆绑和缩小