加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 页面的ValidateRequest设置可以被覆盖吗?

发布时间:2020-12-15 19:15:35 所属栏目:asp.Net 来源:网络整理
导读:我有一个ASP.NET MVC形式,可能(通常)提交一个响应,将触发“从客户端检测到一个潜在危险的Request.Form值”错误。 为了试图解决这个问题,我在页面指令中放置了一个ValidateRequest =“false”。 只有问题:我仍然得到的错误! 现在,一切都很好,直到我更
我有一个ASP.NET MVC形式,可能(通常)提交一个响应,将触发“从客户端检测到一个潜在危险的Request.Form值”错误。

为了试图解决这个问题,我在页面指令中放置了一个ValidateRequest =“false”。

只有问题:我仍然得到的错误!

现在,一切都很好,直到我更新到ASP.NET MVC RC今天上午,(根据readme),放置以下在视图web.config:

<pages validateRequest="false" 
       pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter,System.Web.Mvc,Version=1.0.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35"
       pageBaseType="System.Web.Mvc.ViewPage,PublicKeyToken=31BF3856AD364E35"
       userControlBaseType="System.Web.Mvc.ViewUserControl,PublicKeyToken=31BF3856AD364E35">
    <controls>
        <add assembly="System.Web.Mvc,PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
    </controls>
</pages>

所以,validateRequest对于所有页面应该是false,对吧?我缺少什么?

解决方法

在MVC中,验证发生在控制器级别,而不是页面级别。为了看看为什么会这样,考虑在控制器动作执行的时候,我们不知道选择哪个视图来渲染。 (实际上,控制器动作甚至可能甚至不渲染视图!它可能在客户端打开文件下载提示)。此外,如果用户提交恶意输入到服务器,在视图呈现它的时间太晚了,不能做任何事情。控制器已经将危险输入提交到数据库。

相反,请使用属性[ValidateInput(false)]装饰控制器或操作。这将导致我们抑制对该控制器或操作的请求验证。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读