【问题标题】:why I cant disable request validation?为什么我不能禁用请求验证?
【发布时间】:2013-10-17 13:27:29
【问题描述】:

我支持 MVC4 应用,需要禁用请求验证以进行测试。

我在 Web.config 中做了以下操作

<pages validateRequest="false">
<httpRuntime  requestValidationMode="2.0"/>

当我尝试输入 html 或脚本时,它仍然验证输入并抛出错误“”

我的操作没有[ValidateInput],默认情况下[ValidateInput] 有吗?我试过如果我把[ValidateInput(false)] 它忽略验证。

有没有办法让它忽略验证而不将[ValidateInput(false)] 与操作放在一起?

【问题讨论】:

    标签: c# .net validation asp.net-mvc-4


    【解决方案1】:

    您可以将该属性添加到您的全局过滤器配置中,但请确保它仅在调试模式下完成。 在您的 FilterConfig.cs 中,只需执行

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        //filters.Add(new HandleErrorAttribute());
        #if DEBUG
        filters.Add(new ValidateInputAttribute(false));
        #endif
    }
    

    【讨论】:

    • 很好的解决方案 :) 只是为了确保,我可以将这段代码保留在生产环境中,并且只有在调试时才会运行。我还可以添加其他条件代码以在生产或暂存中工作,而一些位仅在本地工作吗?谢谢
    • 是的,您甚至可以在 PRODUCTION 中保留它,当您使用发布配置构建解决方案时,#if DEBUG 行之间的任何内容都会被忽略。
    • 抱歉打扰你了,我的意思是#if DEBUG还有其他类似DEBUG的spacifiers,只是想探索一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-15
    • 2016-06-02
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多