2014-05-13 178 views
0

我正在使用ASP.NET WebForms(.NET 4.5)并且有一个“内容块”控件,它可以在多个页面上重复使用。我试着设置控件的ValidateRequestMode,甚至将单个元素设置为“Disabled”,但来自web.config的请求验证仍然可以防止不安全的输入。控制级别ValidateRequestMode没有效果

有没有办法解决这个问题,或者我做错了什么?

例子:

回答

2

我刚刚解决了与下面的代码的网站同样的问题,试错的早晨起床后 - 微软对新请求验证的流程文档似乎是错误的,当它涉及到WebForms的。

目标.NET 4.5在web.config这样的:

<httpRuntime targetFramework="4.5" requestValidationMode="4.5" /> 

,然后加入ValidateRequestMode="Disabled"到输入控件本身即:

<asp:textbox id="myControl" runat="server" ValidateRequestMode="Disabled"/> 

如果访问直接POST数据(如与通过myControl.Text相反)您还需要绕过此处的验证:

Request.Unvalidated.Form("myControl"); 
0

同意Jason Elkin。

作为补充,在控制级别设置ValidateRequestMode="Disabled" ,在服务器端,当访问到请求后,你必须访问Request.Unvalidated来获取值。