我正在尝试获取实际的当前本地DateTime(在客户端),即使用户已将系统DateTime更改为其他内容。
我用过这个:
DateTime localDateTime = DateTime.Now;
但它会查看系统时间,因此如果用户更改系统DateTime,我将无法获得实际的DateTime。
我还考虑过获取时间并转换它,但这也考虑了计算UTC时间的系统时间。
如果无法做到这一点,有没有办法获取网络服务器的DateTime?
这样做的原因是记录更新/创建某些记录的时间,并且我试图避免用户可以通过更改系统时间来操纵此时间的情况。
非常感谢任何帮助。
答案 0 :(得分:8)
由于它是 WEB APPLICATION ,所有后端代码都将托管在您的服务器中,这意味着您拥有完全控制那里有时区。
您不需要也不应该关心从客户端传递的时区,因为您永远不会认为它是可靠的。
另一件事是,如果您不小心,您的网络服务器的时区可能与您的数据库服务器使用的时区不同(我以前曾面对它)。所以这是最佳实践
最佳实践:在任何地方使用UTC时区,并在需要时转换为本地时区。
答案 1 :(得分:1)
如果您想在客户端使用时间,则根本不使用C#。您拥有的代码只能在Web服务器上运行。 ASP.Net MVC中没有C#代码在客户端计算机上运行。
要在客户端获得时间,您必须从javascript或第三方插件获取它。在任何一种情况下,您仍然可能依赖于通过HTTP协议提交的数据,这些 easy 在浏览器之外进行操作。如果客户真的想骗你,那么你可以做什么 。