繁体   English   中英

validateRequest =“false”表现得很奇怪

[英]validateRequest=“false” is acting weird

(ASP.NET 4.0 C#)

我在webconfig中有<httpRuntime requestValidationMode="2.0" /> 我在页面目录中有validateRequest="false"

在一个页面上,我将一些数据(html)从ckeditor(textarea)发送到数据库。 工作良好。 在另一个页面上,我用数据库中的数据填充ckeditor,然后我更新它(发送回来),然后我得到着名的“从客户端检测到一个潜在危险的Request.Form值”。

让我很困惑。 唯一的区别是在第二页上数据被动态插入到textarea中,在第一页上textarea在pageload上是空的。 我错过了什么吗? 我很确定编码/解码没有任何意义,因为框架在我甚至可以在后端开始搞乱它之前就停止了它。

好吧,我还没有找到答案为什么它的行为方式。 但是,我找到了一个非常简单快捷的方法(+新的好处)。

这是一个制作.net ckeditor控件的人

http://cksource.com/forums/viewtopic.php?f=11&t=15882

你去吧。 奇迹般有效。 没有验证错误。

尝试在页面指令中将ValidateRequest设置为false? 更好的选择可能是使用Microsoft Anti-Cross Site Scripting Library:

http://msdn.microsoft.com/en-us/library/aa973813.aspx

这里回答了类似的问题:

requestValidationMode 2.0和4.0之间有什么区别

也可能是没有安装ASP.NET 4.0,或者应用程序池未设置为在4.0下运行。

ValidationRequest =“false”仅适用于框架的先前版本中的.aspx文件。

在ASP.NET 4中,它在任何HTTP请求的BeginRequest阶段之前启用所有请求。 因此,请求验证适用于所有ASP.NET资源(如Web服务调用和自定义HTTP处理程序)的请求。

要绕过这个新机制,必须创建自己的RequestValidator并更改web.config以使用此自定义验证器。

http://msdn.microsoft.com/en-us/library/system.web.util.requestvalidator.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM