Ошибка потенциально опасного Request.Form ... в MVC 2.0 - PullRequest
0 голосов
/ 25 октября 2010

ValidateInputAttribute, ValidateInput, httpRuntime requestValidationMode = "2.0" в web.config (system.web) все не исправляют, также, на мой взгляд, "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 с Ckeditor "потенциально опасный Request.Form , но оно может быть старым.

Пожалуйста, помогите !! Спасибо.

ОБНОВЛЕНИЕ:

Оооочень .... Оказывается, вам нужно настроить корневой web.config, а НЕ web.config, который находится в вашей папке Views. Сладкая милость. Спасибо всем!

Ответы [ 4 ]

1 голос
/ 24 февраля 2019

В качестве альтернативы предыдущим предложениям я обнаружил, что HTML-кодировка, которая была передана обратно в контроллер, устранила проблему.

Вы можете сделать это, добавив config.htmlEncodeOutput = true; в файл конфигурации CKEditor (~ / ckeditor / config.js).

Соответствующую документацию можно найти по адресу: https://docs -old.ckeditor.com / ckeditor_api / symbols / CKEDITOR.config.html # .htmlEncodeOutput .

1 голос
/ 25 октября 2010

Я обнаружил, что вам нужно перейти к действию на контроллере, который получает данные публикации из расширенной формы CKEditor, и в этом действии добавить атрибут, подобный этому:

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

  ...

  return View();
}
1 голос
/ 25 октября 2010

В разделе System.Web вашего web.config добавьте это -

<httpRuntime requestValidationMode="2.0"/>

И используйте

[ValidateInput(false)]

О методе действия

0 голосов
/ 25 октября 2010

Возможно, вы захотите переопределить событие OnError (которое возникает при этой ошибке) на вашем сайте aspx.cs, и там обработайте эту ошибку

Обновление:

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

Я не проверял это, но оставив этот метод пустым (просто удалите: base.OnError (e); перед вставкой копии в ваш код) может решить вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...