我遇到了 requestValidationMode="4.0"
的问题,如果您在表单中提交 html 标签,请求将被标记为无效,并且应用程序将抛出 A 潜在危险的请求.从客户端检测到表单值
。
两种最流行的解决方案是在全局级别上结合使用 requestValidationMode="2.0"
和 validateRequest='false'
或保持全局为 4.0
但在其 web.config 中创建一个列为 2.0
的子目录,并将所有您不想验证的页面放在那里。
我真正想要的是保留 4.0,但在 4.0 中添加一点逻辑 RequestValidator类以防止它在表单中只是 HTML 时抛出错误。
最佳答案
我傻了。就在 documentation 中.
namespace WebApplication4
{
public class CustomRequestValidator : RequestValidator
{
protected override bool IsValidRequestString(
HttpContext context, string value,
RequestValidationSource requestValidationSource, string collectionKey,
out int validationFailureIndex)
{
return base.IsValidRequestString(context, value, requestValidationSource, collectionKey, out validationFailureIndex);
//validationFailureIndex = -1;
//return true;
}
}
}
<system.web>
<httpRuntime targetFramework="4.5" requestValidationType="WebApplication4.CustomRequestValidator "/>
...
</system.web>
关于asp.net - 是否可以扩展 ASP.NET 4.0 RequestValidator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24307168/