我的ASP.NET 4.5 RC WebForms应用程序中有一个文本框,需要接受可能的HTML。
我已经研究过这个并且做了以下事情以允许这种情况发生: 在web.config中,我已经适当地设置了requestValidationMode和validateRequest。
<httpRuntime requestValidationMode="2.0" enableVersionHeader="false"/>
<pages enableEventValidation="false" validateRequest="false">
在控件本身上,我添加了属性ValidateRequestMode =“Disabled”
<asp:TextBox ID="txtBio" runat="server" TextMode="MultiLine" Height="100" Width="300" ValidateRequestMode="Disabled" />
但是,我仍然收到错误:
从客户端
检测到潜在危险的Request.Form值
有没有人对我还能尝试的其他方法有任何其他想法?我认为这是ASP.NET 4.5 RC Web堆栈中的一个错误,但我可能错了。虽然因为我实际上是出于想法,但感觉就是这样。好像我现在已经轻弹了每一个开关。
另外,我更希望将requestValidation保留在除此项目之外的所有地方,但是,如果我可以完全关闭它,那将是一个好的开始。
非常感谢
答案 0 :(得分:1)
尝试在页面顶部的属性中添加validateRequest="false"
,如下所示:
%@ Page Language="C#" AutoEventWireup="true" CodeBehind="page.aspx.cs" validateRequest="false" Inherits="Project.UI.page" %>
但请注意检查html是否有用户在验证关闭时可能添加的任何恶意脚本。
更新: 尝试将此添加到您的用户控件代码隐藏。
protected void Page_Init(object sender, EventArgs e)
{
try
{
((umbraco.UmbracoDefault)this.Page).ValidateRequest = false;
}
catch { }
}