C# 用户控件有潜在危险的请求。从客户端检测到QueryString值

C# 用户控件有潜在危险的请求。从客户端检测到QueryString值,c#,asp.net,C#,Asp.net,我有一个用户控件,我正在传递一个.net似乎认为是危险的查询字符串。。我已经把我的web.config <httpRuntime requestValidationMode="2.0" enableVersionHeader="false" maxUrlLength="10999" maxQueryStringLength="2097151"/> <security> <requestFiltering> <requestL

我有一个用户控件,我正在传递一个.net似乎认为是危险的查询字符串。。我已经把我的web.config

<httpRuntime requestValidationMode="2.0" enableVersionHeader="false" maxUrlLength="10999" maxQueryStringLength="2097151"/>

<security>
      <requestFiltering>
        <requestLimits maxUrl="10999" maxQueryString="2097151" />
      </requestFiltering>
    </security>

我的用户控件是:

  <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Member.ascx.cs" Inherits="DOM.Umbraco.Web.usercontrols.Members" %>

但还是没有希望。。我怎样才能得到这个允许这个查询字符串

谢谢
Dom

您可以使用此web.config设置禁用请求验证

<configuration>
   <system.web>
      <pages validateRequest="false" />
   </system.web>
</configuration>

考虑到任何验证都不会导致安全问题。您需要将内置验证替换为一些定制代码,以便从客户端清理数据

如果要将此设置仅限于使用用户控件的页面,可以使用此页面指令

<@ Page validateRequest="false" %>

覆盖请求验证程序并允许输入所需的字符。小心,如果数据要重新显示,它将包含原始内容,这可能是危险的。i、 e.脚本标签

public class CustomRequestValidator : System.Web.Util.RequestValidator
{
    protected override bool IsValidRequestString(HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex)
    {
        validationFailureIndex = 0;

        if (requestValidationSource == RequestValidationSource.Form)
        {
            value = value.Replace("<", "").Replace(">", "");
        }
        return base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);
    }
}
公共类CustomRequestValidator:System.Web.Util.RequestValidator
{
受保护的覆盖布尔IsValidRequestString(HttpContext上下文、字符串值、RequestValidationSource RequestValidationSource、string collectionKey、out int validationFailureIndex)
{
validationFailureIndex=0;
if(requestValidationSource==requestValidationSource.Form)
{
值=值。替换(“,”);
}
返回base.IsValidRequestString(上下文、值、requestValidationSource、collectionKey、out validationFailureIndex);
}
}

这是一个页面而不是控件@gvashist您试图传递的查询字符串是什么?这是一个控件而不是页面???@Dom Adams:有什么问题吗?我的第一种方法是禁用整个站点的请求验证。这两种方法都不起作用。。表示无法访问请求的页面,因为该页面的相关配置数据无效@claudioRedi@Dom亚当斯:看来你在更改web.config时犯了一个错误。错误应该包括关于web.config上的错误的详细信息