asp.net - 是否可以扩展 ASP.NET 4.0 RequestValidator?

标签 asp.net asp.net-mvc

我遇到了 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/

相关文章:

javascript - 基于下拉列表和按钮单击的 MVC 5 Ajax 刷新

asp.net-mvc - 无法调试从 MS Access 调用的 Web API

c# - Visual Studio 2015 在 Text Visualizer 上截断长字符串

asp.net - session 超时 .NET

c# - 从代码后面引用 jquery 库

javascript - 使用 appendChild 图像锚定的 FireFox 问题

javascript - MVC 5 DropDownList 将字符串添加到 Jquery 的值

c# - 检查网站是 TLS 还是 SSL 及其版本

c# - 将嵌套 ListView 的数据源绑定(bind)到父级 ListView 的数据源

asp.net-mvc - 如何使用 POST 动词重定向到页面?