【问题标题】:How to disable Validation in ASP.net MVC2 if the parameter of the action is a model如果操作的参数是模型,如何在 ASP.net MVC2 中禁用验证
【发布时间】:2010-06-28 11:25:15
【问题描述】:

在 ASP.net MVC 2 中,如果操作的参数是模型,如何禁用验证以消除异常,例如“从客户端检测到潜在危险的 Request.Form 值(Post.Title="标题”)。 '?

例如,在 MvcMusicStore(这是 ASP.net MVC2 的官方演示)中,以下代码负责创建新专辑。而 Title 是它的一个属性。

    [HttpPost]
    public ActionResult Create(Album album)
    {
        ...
    }

但是如果我在Title文本框中添加一些敏感代码,比如“Title”,就会抛出上述异常。我尝试将 [ValidateInput(false)] 添加到此操作中,并将 ValidateRequest="false" 添加到视图代码中,但它们都不起作用。

有人可以帮忙吗?

更新: 由于我使用的是 Visual Studio 2010 和 ASP.net 4.0,除非我添加,否则所有这些解决方案都不起作用:

<httpRuntime requestValidationMode="2.0" />

到 web.config。请参考:https://stackoverflow.com/questions/2019843/a-potentially-dangerous-request-form-value-in-mvc-2-asp-net-4-0http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#_TOC4

然后又出现了一个新问题。如果我们必须回到使用 2.0 的请求验证模式,为什么微软会在 ASP.net 4.0 中添加这个新特性呢?有没有办法在不返回 2.0 模式的情况下解决此异常?

【问题讨论】:

    标签: asp.net-mvc model


    【解决方案1】:

    如果您查看您描述的错误消息下方的描述,您会发现以下解决方案:

    ...要允许页面覆盖应用程序请求验证设置,请将 httpRuntime 配置部分中的 requestValidationMode 属性设置为 requestValidationMode="2.0"。示例:&lt;httpRuntime requestValidationMode="2.0" /&gt;。设置此值后,您可以通过在 Page 指令或 &lt;pages&gt; 配置部分中设置 validateRequest="false" 来禁用请求验证。但是,强烈建议您的应用程序在这种情况下明确检查所有输入。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=153133

    您提到您尝试添加 validateRequest 属性,但您是否也尝试将 requestValidationMode="2.0" 添加到 web.config 中的 httpRuntime 部分?这可能会奏效。

    【讨论】:

    • 有什么方法可以在不回到 2.0 模式的情况下处理这个异常?
    • @user90547 不,这是唯一的方法。
    【解决方案2】:

    我用 [ValidateInput(false)] 修饰了我的操作,它起作用了。我的 web.config 中也有这个(参见 here):

    <pages validateRequest="false">
    

    也许可以按页面设置?在我的网站上,完全可以翻转。

    【讨论】:

      【解决方案3】:

      在 MVC 中,验证发生在标准 ASP.net 方法之前,因此上述答案是正确的。您必须添加到操作[ValidateInput(false)]。您在浏览器中看到的错误消息中给出的说明已过时。

      【讨论】:

        猜你喜欢
        • 2011-08-28
        • 2011-08-02
        • 2011-04-04
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 2014-03-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多