enableviewstatemac =真

时间:2010-03-13 13:11:27

标签: asp.net-3.5

将enableviewstatemac设置为“true”会影响网站的效果吗?你能给我一些解释吗?

2 个答案:

答案 0 :(得分:5)

是的,它会影响网站的效果,straight from MSDN

  

视图状态MAC是隐藏变量的加密版本,页面的视图状态在发送到浏览器时保持不变。如果 true ,则会检查加密的视图状态,以验证它是否未在客户端上被篡改。如果性能是关键考虑因素,请不要将 EnableViewStateMac 设置为 true

该检查必须执行某事,而且某些东西比没有东西贵。您正在处理的视图状态越大,这将对您的请求产生的开销越大。话虽这么说,除非你是真正的高流量网站或者你的网页中有真正的大型视图状态,否则你可能不会注意到服务器端的东西。然而,在客户端,他们将获得一个更大的页面,这可能会产生更大的影响。这意味着他们在回发时上传更多内容到了服务器......这很可能是启用此功能导致的痛点。

请记住,当服务器执行页面时会发生多少事情,所有这些选项都是大多数案例中的“陷入困境”的情况,当然有例外。当前的服务器足够强大,这样的设置通常不会单独产生任何明显的影响,但当然有这样的情况,例如,如果你因某种原因有兆字节的viewstate。

答案 1 :(得分:3)

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

这很重要,因为ASP .Net使用无状态机制,并依赖于客户端上发生的更改作为回发时作为指令传递回页面,以确定触发了哪些更改/事件。如果客户能够肆无忌惮地篡改这些内容,那么他​​们可能会根据自己的方式改变页面行为。