1

我的 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,但是,如果我可以完全关闭它,那将是一个好的开始。

非常感谢

4

1 回答 1

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 { }
} 
于 2012-07-20T09:42:25.847 回答