2010-03-13 57 views

回答

5

是的,它会影响到网站的性能,straight from MSDN

视图状态MAC是隐藏变量的加密版本,一个页面的视图状态持续时,发送到浏览器。如果为真,则检查加密的视图状态以验证它在客户端上没有被篡改。不要设置EnableViewStateMactrue如果性能是一个关键考虑因素。

检查必须做东西,而且有东西比没有东西更昂贵。您处理的视图状态越大,这会对您的请求造成更多的开销。这就是说,除非你真的是真的高流量的网站或有真的在你的网页的大视图状态,你可能不会注意到一个事情服务器端。然而,在客户端,他们会得到一个更大的页面,这可能比任何事情都有更多的影响。这意味着他们上传更多的服务器上回发...这很可能是你的痛苦点由此启用。

请记住,当服务器执行一个页面时会发生多少事情,所有这些选项在大多数个案例中都是“放在桶中”的情况下,当然也有例外。当前的服务器足够强大,像这样的设置通常不会单独产生任何明显的影响,但当然也存在这样的情况,例如,由于某种原因,如果您有兆字节的视图状态。

+6

该链接现在说:“在生产Web站点中,此属性不应设置为false”。 – 2010-11-10 22:06:43

3

enableviewstatemac属性用于指定在收到每个客户端请求时执行检查以确保客户端未篡改他们所服务的控制/隐藏数据。

这很重要,因为.Net使用无状态机制,并依赖于发生在客户端上的变化作为指令返回,以确定发生了哪些更改/事件。如果客户能够肆意篡改这些行为,那么他们可能会根据自己的意愿改变页面行为。