【问题标题】:What's the difference between requestValidationMode 2.0 and 4.0requestValidationMode 2.0 和 4.0 有什么区别
【发布时间】:2013-06-10 16:32:48
【问题描述】:

这里是来自 MSDN 的定义,

4.0(默认)。 HttpRequest 对象在内部设置一个标志,指示在访问任何 HTTP 请求数据时都应触发请求验证。这保证了在请求期间访问 cookie 和 URL 等数据之前触发请求验证。配置文件中 pages 元素(如果有)或单个页面中 @Page 指令的请求验证设置将被忽略。

2.0。请求验证仅对页面启用,并非对所有 HTTP 请求启用。此外,配置文件中 pages 元素(如果有)或单个页面中 @Page 指令的请求验证设置用于确定要验证哪些页面请求。

但我没听懂,能不能帮忙解释一下?

【问题讨论】:

    标签: asp.net validation


    【解决方案1】:

    你可以看看this

    将其视为不仅来自 .aspx 页面的请求被验证是否存在恶意请求,而不是所有请求都被验证。如果网站从 2.0 升级到 4.0,这可能会导致其功能中断

    说实话,我现在不明白为什么某些请求会失败。到目前为止,我只将我的 4.0 应用程序设置回 2.0 验证

    <httpRuntime requestValidationMode="2.0" />
    

    【讨论】:

    • 我刚找到你指向的文章,这对我来说更有意义。谢谢你的解释。但我还有一个问题。为什么“ValidateInput(false)”属性必须与 MVC 3 中的 requestValidationMode 2.0 一起使用。仍然不明白
    • @Jun1st:我只能从 WebForms 的角度谈谈,虽然我没有 MVC 经验。在 WebForms 中,您可以将 PageLevel 上的 ValidateRequest 指定为 false,但这仅意味着不应验证 .aspx 页面。如果其他一些请求的验证失败,您仍然会收到错误消息。
    猜你喜欢
    • 2014-06-02
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多