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