2010-12-20 57 views

回答

4

可能与否,这是一个坏主意。我认为允许的唯一方法是,如果用户帐户的应用程序池正在执行,则对本机具有一些严重的访问权限;这也是一个非常糟糕的主意。

服务器应该与时间服务器同步。这通常在操作系统级别进行控制。

当混合中的一台服务器超出可接受的日期范围时,可能会发生各种各样的时髦事情。

这导致我们回答这个问题:为什么?


UPDATE

你可以的PInvoke SetSystemTime。这将要求用户在应用程序池下运行SeSystemTimePrivilege。更多信息和禁止示例如下:http://bytes.com/topic/c-sharp/answers/274594-how-set-system-date-c

再次,这是一个坏主意(tm)。

+1

+1,另外,您需要提升asp.net apppool帐户的权限。糟糕的主意,如果我见过一个。 – 2010-12-20 19:27:28

+0

如果时间不同步,Kerberos实现将失败。这只是“时髦的事情”的一个例子 – 2010-12-20 19:28:57

+0

当然,这是个坏主意。我只需要它进行测试。 – Andy 2010-12-21 04:28:04

0

我知道这不是你要求的而且不会改变服务器的时间,只是从asp.net页面的角度改变时间。如果时差是一个常量,那么这段代码可能是你的朋友!

这个例子增加1小时从现在开始......

var today = DateTime.Now; 
var duration = new TimeSpan(1, 0, 0); 
var answer = today.Add(duration);