ASP.NET 2.0 的 Event Validation

学习摘要:

ASP.NET 2.0 增加了一个新特性: Event Validation. 这个特性会对 PostBack 的值进行验证,确保是合法的值。其实现原理是在页面 Render 的时候,ASP.NET 引擎会对控件的可能的值以及控件的 UniqueID 进行 hash 计算,得到一个值。页面里所有需要回发的控件的这些计算值就组成了一个列表,组合后放在隐藏字段 __EVENTVALIDATION 中。在页面回发后,会对这个字段的内容进行解包,然后重新计算对比 hash 值是否一致。这个做法的好处是能够防止一些模拟的 post 攻击,但也有一个不方便的地方,就是有时候如果需要用 javascript 修改页面里的一些内容,则回发后不会被当作合法的数据,而抛出一个异常。
另外,如果页面非常大或者网速缓慢,用户在还没有下载到 __EVENTVALIDATION 这个字段的时候就点下 submit,导致回发数据不完整,也会导致异常的发生。

解决这个问题的办法是在 Page 的 Directive 里面禁用 EventValidation,目前还没有针对单独控件进行禁用的办法。

<% @ Page EnableEventValidation = " false "   %>

原文地址:
http://odetocode.com/Blogs/scott/archive/2006/03/20/3145.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值