代码之家  ›  专栏  ›  技术社区  ›  Vin

在IIS下运行时,ValidateInput(false)似乎不起作用

  •  0
  • Vin  · 技术社区  · 15 年前

    ASPNet MVC 2预览版1 网站下 VS开发服务器 得到 “-表单有一个带有 带有尖括号的文本(例如:“i<10;")

    但是在IIS下,当发布相同的表单时(使用方法) 得到 )中,我得到一个404页未找到。

    The resource cannot be found.
    
    Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable.  Please review the following URL and make sure that it is spelled correctly. 
    
    Requested URL: /Rejected-By-UrlScan
    

    1. 在视图上设置ValidateRequest=“false”->Web.config,Main Web.config
    2. 控制器类以及所有操作方法上的ValidateInput(false)属性集

    这两个选项都无助于解决问题。

    谢谢你的帮助

    2 回复  |  直到 15 年前
        1
  •  1
  •   Chris    15 年前

    在你的404信息中,有一个关于这个问题的主要线索。

    Requested URL: /Rejected-By-UrlScan

    UrlScan是一个安全包,安装在IIS服务器中,但未安装在Visual Studio dev服务器中,这解释了为什么您只在IIS上遇到此问题。您提到在post数据中有尖括号,因此可能是UrlScan因此阻止了请求,但我不太熟悉UrlScan。

    摆弄ASP.NET控件的属性可能无法提供解决方案,因为UrlScan将在请求发出之前阻止该请求 达到 ASP.NET。

    我不能提供比这更多的东西(正如我所说,我对UrlScan不是很熟悉,只是对它有一个模糊的概念),但如果我是你,我会先在谷歌上搜索UrlScan并找出如何配置它——或者它是否有某种日志可以帮你准确地确定它为什么会阻止这个特定的请求。

    编辑: http://learn.iis.net/page.aspx/473/using-urlscan 看起来是个不错的开始。

        2
  •  0
  •   Keith Adler    15 年前

    web.config中的ValidateRequest更改在ASP.NET MVC中无效。它在默认情况下处于启用状态,您需要使用属性来启用/禁用它。

    见本参考资料:

    http://stephenwalther.com/blog/archive/2009/02/20/tip-48-ndash-disable-request-validation.aspx