2010-09-14 81 views
3

我的ASP.NET页面有一个<asp:TextBox />其文本输入通过HttpUtility.HtmlEncode();上输入ASP.NET JavaScript错误

被编码的页面还包含验证,如<asp:RequiredFieldValidator /><asp:CustomValidator />以及一些AJAX工具包<toolkit:ValidatorCalloutExtender />

如果用户输入</在文本框中的文本,JavaScript错误

A potentially dangerous Request.Form value was detected 
from the client (ctl00$contentPlaceHolder$ucLookup$tbxLastName=&quot;&lt;/&quot;) 

提交表单时发生。我曾尝试添加各种事件处理程序,如

protected void Page_PreInit(object sender, EventArgs e){} 
protected void Page_Init(object sender, EventArgs e){} 
protected void Page_PreLoad(object sender, EventArgs e){} 

,并设置断点,但没有人被击中,导致我相信错误仅发生在客户端。

如何调试此错误?是否有任何钩子允许我拦截用户的输入并在导致此问题之前对其进行过滤或编码?

+1

如果它的javascript错误,然后尝试在firefox浏览器中使用firebug来调试JavaScript或如果它在Internet Explorer中,在设置 - >高级下,取消选中禁用JavaScript调试选项。你应该在JavaScript引发错误的地方。 – 2010-09-14 17:08:55

+0

谢谢。使用萤火虫,错误是: 从客户端检测到有潜在危险的Request.Form值(ctl00 $ contentPlaceHolder $ ucLookup $ tbxLastName = " </")。 有关如何在客户端尝试验证之前拦截输入的想法?具体而言,我宁愿不在我的所有网页上设置validateRequest =“false”... – Alex 2010-09-14 17:13:29

回答

0

对于这种潜在危险的错误,你可以做以下,并看看是否有帮助 -

添加一行:<pages validateRequest="false" /><system.web>部分内

+0

根据上面的评论,有没有办法做到这一点,而不需要设置validateRequest =“false”?在验证发生之前是否有钩子可以拦截? – Alex 2010-09-14 18:49:24