我有一个使用ckeditor的表单。这种形式在Asp.Net 2.0和3.5中运行良好,但现在它在Asp.Net 4+中不起作用。我有ValidateRequest =“false”指令。有什么建议么?ValidateRequest =“false”在Asp.Net中不起作用4
回答
在错误页面找到解决方案。只是需要加入requestValidationMode = “2.0”
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
这真棒,但有谁知道一种方法来设置每页?另外我怎么把它放在web.config中,以便它仍然可以与.NET 2一起使用? – 2010-06-18 20:43:05
@MK:我不认为这个设置有页面指令。你不能让它在.net 2上运行。我不认为这是必要的。因为您可以构建仅针对一个框架版本的Web应用程序。只需将此行复制到需要它的.net 4 web.config ... – 2010-06-18 23:23:10
但是.net 4的验证中发生了什么变化?有没有办法做到这一点,而不改变验证模式? – Sly 2010-12-10 14:12:00
有办法把验证回到2.0一页。只需将下面的代码添加到您的web.config:
<configuration>
<location path="XX/YY">
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
</location>
...
the rest of your configuration
...
</configuration>
它也适用于文件夹吗? – 2011-05-27 10:11:55
位置是任何路径,并且基于您在树中指定的文件夹下的任何节点。 – DFTR 2011-10-24 23:04:43
这是比接受的答案更好的解决方案,因为它不是应用程序范围,而是狭窄到您在位置路径中定义的特定范围 – 2013-02-13 00:43:30
此工程在不改变验证模式。
您必须使用System.Web.WebPages.dll
的System.Web.Helpers.Validation.Unvalidated
帮手。它将返回一个UnvalidatedRequestValues
对象,该对象允许在不验证的情况下访问表单和QueryString。
例如,
var queryValue = Server.UrlDecode(Request.Unvalidated("MyQueryKey"));
作品对我来说MVC3和.NET 4
您能否提供一个如何使用此方法检索queryString的示例?我一直得到'未经验证不是...的成员',我尝试将其附加到所有对象。我想我可能会缺少包括 – CodedMonkey 2012-05-23 21:04:03
var queryValue = Server.UrlDecode(Request.Unvalidated(“MyQueryKey”)); – sfuqua 2012-05-23 21:12:50
这绝对应该是被接受的答案。保持安全性并且非常灵活,因为您可以选择性地使用它。 – cmartin 2015-06-05 18:38:48
注意,另一种方法是保持与4.0验证行为,而是定义自己的类派生自RequestValidator
并设置:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
(其中YourNamespace.YourValidator
很好,你应该能猜到......)
通过这种方式,您可以保持4.0s行为的优点(具体而言,验证在处理的早期发生),同时还允许您需要通过的请求。
这很好理解。但我仍然认为ASP.Net的整个请求验证功能是错误的。输入本身不是问题,这是你*做的*。接受SQL,HTML或JavaScript代码作为您的应用程序的输入可能非常有效,只要您在输出它或将其存储在数据库中之前对其进行正确编码/转义即可。 – 2012-08-02 17:36:52
@JordanRieger我部分同意。 OOTB,它至少具有默认安全的优点(不要思考问题,并且你会得到错误,而不是错误),但这有点令人讨厌,4.0之前的行为非常全面或无效。 在自定义requestValidationType的情况下,有一些能够在任何其他处理之前获得使用的验证层的能力,但是需要将大量验证与其他处理绑定在一起。总而言之,我认为它更多的是保护一些(但不是全部)分居人士的坏习惯,而不是鼓励良好的习惯。 – 2012-08-02 18:13:47
我知道这是一个老问题,但如果你在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();
}
这可以在用户控件的Page_Load上完成吗? – 2014-03-20 06:14:11
@RossCooper这只适用于asp.net MVC – mxmissile 2018-02-06 15:07:13
- 1. ValidateRequest =“false”和.NET 4问题
- 2. 发布HTML值时ValidateRequest =“false”不起作用
- 3. 使用ValidateRequest =“false”的缺点asp.net
- 4. 在ASP中使用设置ValidateRequest为false
- 5. ValidateRequest =“False”in master page
- 6. MVC 2.0中的ValidateRequest = false .net
- 7. ASP.NET linkbutton enabled = false在Firefox中不起作用
- 8. MenuItem setVisible(false)在Android中不起作用
- 9. asp.net ValidateRequest = false每个文本框而不是每页?
- 10. 会话超时不起作用ASP.NET 4
- 11. maxRequestPathLength不在ASP.NET 4文档中,不起作用
- 12. 为什么ValidateInput(False)不起作用?
- 13. Solr omitNorms = false不起作用
- 14. CausesValidation =“false”不起作用
- 15. java setEnable(false)不起作用
- 16. frame.setResizable(false)不起作用
- 17. rootVisible = false不起作用
- 18. RSpec use_transactional_fixtures = false不起作用
- 19. ScaffoldColumn(false)不起作用
- 20. deleteFile = FALSE在renderImage不起作用
- 21. 多选= FALSE在LISTVIEW不起作用
- 22. setReadable(true)在setReadable(false)后不起作用
- 23. trace()在flashbuilder 4中不起作用?
- 24. Flex 4 headerWordWrap在AdvancedDataGridColumn中不起作用
- 25. 当debug =“false”时,Ajax调用不起作用(ASP.NET MVC)
- 26. FCK编辑器+更新面板+ ValidateRequest =“false”?
- 27. validateRequest =“false”是行为怪异的
- 28. 加入validateRequest = false,但仍然得到
- 29. requestValidationMode =“2.0”和validateRequest =“false”的问题
- 30. Boostrap 4 Navbar不起作用
有有关呈现验证的短文章控制得宜,如果有人关心:[错误在.NET中验证4](http://www.softcircuits.com/Blog/post/2010/06/04/Validation-Controls -Lost-Their-Red-Color.aspx) – Ian 2010-06-15 00:16:39
任何人都可以请让我知道使用ValidationRequest = false有什么缺点? – fc123 2014-10-16 16:04:12