MVC 2.0中的“潜在危险的Request.Form ...”错误

问题描述 投票:0回答:4

web.config(system.web)中的ValidateInputAttribute,ValidateInput,httpRuntime requestValidationMode =“2.0”都没有修复,在我的视图中也是“ValidateRequest =”false“”。我正在使用MVC 2,Visual Studio 2010,.NET 4.0,我仍然收到以下错误:

A potentially dangerous Request.Form value was detected from the client (Body="<p>test</p>").

这是CKEditor。我已经看过MVC2 application with Ckeditor "potentially dangerous Request.Form,但那可能已经老了。

请帮忙!!谢谢。

更新:

Soooo ....结果你必须调整根web.config,而不是你的Views文件夹中的web.config。甜蜜的怜悯。感谢大家!

asp.net-mvc-2 ckeditor
4个回答
1
投票

我发现你需要转到控制器上的Action,它接收来自CKEditor增强形式的帖子数据,并在该动作上添加如下属性:

[ValidateInput(false)]
public ActionResult UpdateText(string HtmlText)
{
  Repository.Save(HtmlText);  

  ...

  return View();
}

1
投票

到web.config的System.Web部分添加这个 -

<httpRuntime requestValidationMode="2.0"/>

并使用

[ValidateInput(false)]

关于动作方法


1
投票

作为以前建议的替代方法,我发现HTML编码传回控制器的内容解决了这个问题。

您可以通过将config.htmlEncodeOutput = true;添加到CKEditor的配置文件(〜/ ckeditor / config.js)来完成此操作。

相关文档可在以下网址找到:https://docs-old.ckeditor.com/ckeditor_api/symbols/CKEDITOR.config.html#.htmlEncodeOutput


0
投票

您可能希望在aspx.cs站点中覆盖OnError事件(在此错误上触发)并处理此错误

更新:

   protected override void OnError(EventArgs e)
   {
      base.OnError (e);
   }

我没有测试过,但是将此方法留空(只需删除:base.OnError(e);在复制粘贴到代码之前)可能会解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.