C# validateRequest=";假;他行为怪异

C# validateRequest=";假;他行为怪异,c#,asp.net,webforms,ckeditor,validate-request,C#,Asp.net,Webforms,Ckeditor,Validate Request,(ASP.NET 4.0 C#) 我的在网络配置中。及 我在页面目录中有我的validateRequest=“false” 在一个页面上,我将一些数据(html)从ckeditor(textarea)发送到数据库。很好。 在另一个页面上,我用数据库中的数据填充ckeditor,然后更新它(将其发送回),然后得到著名的“潜在危险的请求。从客户端检测到表单值”。 让我很困惑。唯一的区别是,在第二个页面上,数据被动态地插入textarea,在第一个页面上,在pageload上textarea是空的。我

(ASP.NET 4.0 C#)

我的
在网络配置中。及 我在页面目录中有我的
validateRequest=“false”

在一个页面上,我将一些数据(html)从ckeditor(textarea)发送到数据库。很好。 在另一个页面上,我用数据库中的数据填充ckeditor,然后更新它(将其发送回),然后得到著名的“潜在危险的请求。从客户端检测到表单值”。


让我很困惑。唯一的区别是,在第二个页面上,数据被动态地插入textarea,在第一个页面上,在pageload上textarea是空的。我是不是遗漏了什么?我很确定编码/解码没有任何意义,因为框架在我开始在后端处理它之前就停止了它。

尝试在page指令中将ValidateRequest设置为false?更好的选择可能是使用Microsoft反跨站点脚本库:

这里回答了一个类似的问题:

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

ValidationRequest=“false”仅应用于框架早期版本中的.aspx文件

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

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


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

有个人做了一个.net编辑器控件


好了。工作起来很有魅力。没有任何验证错误。

您确定两个页面上都有validateRequest=false吗?也许在web.config上移动它。ValidateRequest区分大小写吗?我已经在页面指令中有ValidateRequest to false,正如我的问题中所述:)另一个线程确实没有帮助,但我会尝试查看您发送给我的另一个链接。谢谢你的回答:)检查IIS中的应用程序池基本设置,看看它是否设置为4.0。如果不是,这可能就是问题所在。我只是通过VS10在虚拟服务器上运行它:)检查:是的,对不起,没有什么帮助。他错过了网络配置中的链接。我在问题中说我已经有了这个。有趣。我会调查的。顺便说一句,关于这个问题的一点更新。显然,这个框架并没有阻止我的数据被放入数据库,它只是显示了一个错误:SOkay David,我已经读过了。好东西。但是,你不是在说与msdn完全相反的话吗?对我来说,(在阅读了你的链接之后)我不必担心验证错误。我唯一关心的是我是否想验证某些特定的东西。但你不是说不管发生什么,它都会得到验证吗?不管怎样,我真的不想再在上面浪费眼泪了。我想我会像你说的那样做我自己的requestValidator。msdn上有一个很好的例子。谢谢你的时间,伙计。我整晚都在做关于这个问题的噩梦。大卫,你能解释为什么会这样吗?。它非常复杂,以至于当ckeditor开始为空时,框架会忽略“危险”标记,但当编辑器中有数据开始时会出现错误。代码是一样的。对不起,这不是真的。如果您不想进行任何验证,如果您使用的是
requestValidationMode=“2.0”
,则不需要实现自己的请求验证器。