代码之家  ›  专栏  ›  技术社区  ›  MK.

ValidateRequest=false和.NET 4问题

  •  2
  • MK.  · 技术社区  · 14 年前

    .NET 4已损坏 ValidateRequest=“false” 因为某种原因。

    <httpRuntime requestValidationMode="2.0" /> 到web.config文件中。

    IIS拒绝接受web.config中的未知属性。我也不喜欢这一切的本质。

    我可以为需要它的单个页面设置requestValidationMode(或者以其他方式禁用请求验证)吗?不破坏的向后兼容性 web.config

    5 回复  |  直到 14 年前
        1
  •  1
  •   buggerlugs    12 年前

    我可以确认将validateRequest=“true”添加到web.config文件的方法是有效的,而且非常棒!

    使用它可以使页面级指令再次正常工作,并且避免将行为更改回ASP.Net2.0模式。

    奇怪的是,它有任何影响,因为请求验证通常是默认启用无论如何,但没有关系。

        2
  •  1
  •   Mahmoud Nasr    6 年前

    <pages validateRequest="false">
    

    <httpRuntime requestValidationMode="2.0" /> 完全

        3
  •  0
  •   MK.    14 年前

    好吧,看起来这是不可能的,我可以很容易地避开数据,但我认为这是一个合理的问题——至少在这里要说明这是不可能的。

        4
  •  0
  •   Nate    14 年前

    我想我找到了更好的方法。我不喜欢在4.0中恢复到2.0设置的选项。我也不喜欢全有或全无的选择。

    默认情况下,不管“ValidateRequest=”false“的页面指令如何,都会验证所有页面

    我在system.web的pages部分的web.config中找到了进行此设置的位置。 (http://msdn.microsoft.com/en-us/library/system.web.configuration.pagessection.validaterequest.aspx)

    如果将validateRequest属性添加到pages元素中,则可以控制整个站点的验证。

    但是我在测试这个的时候偶然发现了一件快乐的事情。我找不到这方面的文档,但这是我的经历。 默认情况下,到处都启用验证,但如果我将validateRequest设置为“true”,我的各个页面指令的工作方式与2.0中的相同。我不知道为什么,但我很高兴。

    总之。。。 就像这里。

    然后任何页面指令都可以用于验证。

        5
  •  -1
  •   Mike Florian Doyen    14 年前

    我只是把它放在system.web节点的web.config中。

    <httpRuntime requestValidationMode="2.0" />