【问题标题】:validateRequest="false" is acting weirdvalidateRequest="false" 行为怪异
【发布时间】:2011-04-04 20:25:51
【问题描述】:

(ASP.NET 4.0 C#)

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

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

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

【问题讨论】:

  • 您确定在两个页面上都有 validateRequest=false 吗?也许将它移到 web.config 上。
  • ValidateRequest 区分大小写吗?

标签: c# asp.net webforms ckeditor validate-request


【解决方案1】:

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

有一个人做了一个 .net ckeditor 控件

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

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

【讨论】:

    【解决方案2】:

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

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

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

    What's the difference between requestValidationMode 2.0 and 4.0

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

    【讨论】:

    • 我已经在页面指令中将 validateRequest 设置为 false,正如我的问题中所述:) 另一个线程确实没有帮助,但我会尝试查看您发送给我的其他链接。谢谢你的回答:)
    • 检查 IIS 中的应用程序池基本设置,看看它是否设置为 4.0。如果不是,这可能是问题所在。
    • 我只是通过 VS10 在虚拟服务器上运行它:)
    • 是的,抱歉并没有真正帮助。他错过了 webconfig 中的 。我在我的问题中说我已经有了这个。
    【解决方案3】:

    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

    【讨论】:

    • 啊哈。有趣的。我会调查的。顺便提一句。关于这个问题的一点更新。显然框架并没有阻止我的数据被放入我的数据库,它只是显示错误:S
    • 好的,大卫,我已经读过了。好东西。但是你不是说与msdn所说的完全相反吗?对我来说,这听起来像是(在阅读了您的链接之后)我不必担心验证错误。我唯一担心的是我是否想验证特定的东西。但是你不是说它总是会验证——无论如何?
    • 无论如何,真的不想再浪费眼泪了。我想我会像你说的那样做我自己的 requestValidator 。 msdn上有一个很好的例子。感谢您的时间伙伴。
    • 好的。关于这个问题,我整晚都在做噩梦。你有什么解释为什么会发生这种情况大卫?它是如此奇怪,以至于当 ckeditor 开始时框架为空时,框架会忽略“危险”标签,但是当编辑器中开始有数据时会出现错误。代码相同。
    • 对不起,这不是真的。如果您不想要任何验证,则不需要实现自己的请求验证器,如果您使用的是requestValidationMode="2.0"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多