当前位置:  开发笔记 > 编程语言 > 正文

ValidateRequest ="false"在Asp.Net 4中不起作用

如何解决《ValidateRequest="false"在Asp.Net4中不起作用》经验,为你挑选了5个好方法。

我有一个表格,我使用ckeditor.这种形式在Asp.Net 2.0和3.5上运行良好,但现在它在Asp.Net 4+中不起作用.我有ValidateRequest ="false"指令.有什么建议?



1> HasanG..:

在错误页面找到解决方案.只需要添加requestValidationMode ="2.0"


    
    

MSDN信息:HttpRuntimeSection.RequestValidationMode属性


@Sly:你可以在这里找到答案:http://www.asp.net/learn/whitepapers/aspnet4/breaking-changes#0.1__Toc256770147
但是.net 4验证的变化是什么?有没有办法在不改变验证模式的情况下做到这一点?

2> Ben Hoffman..:

有一种方法可以将验证恢复为一页的2.0.只需将以下代码添加到您的web.config:


    
        
            
        
    

    ...
    the rest of your configuration
    ...



这是一个比接受的答案更好的解决方案,因为它不适用于您在位置路径中定义的特定范围的应用范围
上面的声明应放在声明中,但不能再嵌套.

3> Tom Chantler..:

我知道这是一个老问题,但如果你在MVC 3中遇到这个问题,那么你可以装饰你ActionMethod[ValidateInput(false)],只需关闭一个单一的请求验证ActionMethod,这很方便.而且您不需要对web.config文件进行任何更改,因此您仍然可以在其他任何位置使用.NET 4请求验证.

例如

[ValidateInput(false)]
public ActionMethod Edit(int id, string value)
{
    // Do your own checking of value since it could contain XSS stuff!
    return View();
}



4> Assassin..:

这不会改变验证模式.

你必须使用一个System.Web.Helpers.Validation.Unvalidated帮手System.Web.WebPages.dll.它将返回一个UnvalidatedRequestValues允许访问表单和QueryString而无需验证的对象.

例如,

var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));

适用于MVC3和.NET 4.


var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));

5> Jon Hanna..:

请注意,另一种方法是保持4.0验证行为,但要定义自己派生的类RequestValidator并设置:


(哪里YourNamespace.YourValidator好,你应该猜到......)

这样,您可以保持4.0s行为的优势(特别是,验证在处理中更早发生),同时还允许您需要通过的请求.


这很好知道.但我仍然认为ASP.Net的整个请求验证功能是错误的.输入本身不是问题,而是你用它做*.接受SQL,HTML或JavaScript代码作为应用程序的输入是完全有效的,只要您在输出或将其存储在数据库中之前正确编码/转义它.
@JordanRieger我部分同意.OOTB,它至少具有默认安全的优势(不要考虑事情,你得到错误,而不是错误),但它有点令人讨厌,4.0之前的行为是非常全有或全无.有一些能够在任何其他处理之前使用验证层,就像自定义requestValidationType一样,但是许多验证需要与其他处理更紧密地联系在一起.总而言之,我认为保护一些(但不是全部)不良习惯的人比鼓励良好的习惯更能保护他们.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有