2012-08-23 3 views
8

У меня есть редактор WYSIWYG, встроенный в пользовательский элемент управления, который, очевидно, входит в веб-страницу. Когда я отправляю страницу, я получаю исключение «потенциально опасное значение Request.Form из исключения клиента». В предыдущих версиях .NET я бы просто отключил ValidateRequest для этой страницы.ASP.NET 4.5 Потенциально опасное значение Request.Form было обнаружено у клиента

Однако в .NET 4.5 он, похоже, обладает свойством ValidateRequestMode. Когда я устанавливаю это для отключения, я все равно продолжаю получать ошибку. Там еще не так много о проблемах с ошибками .NET 4.5, так кто-нибудь знает решение?

Заранее спасибо.

+2

В качестве альтернативы вы можете использовать javascript для кодирования содержимого вашего редактора wyswing перед отправкой на сервер. Таким образом, вам не нужно отключать проверку. – m0s

+0

Я использую новейший редактор TinyMCE (версия 3.5.6) и имеет встроенную опцию для кодирования содержимого, которое я уже использую. Поэтому это должно закодировать его. Но я все еще получаю ошибку. – Ricketts

ответ

13

Я нашел проблему. Это связано с тем, что редактор TinyMCE должен иметь контент, закодированный до кода, который пытается прочитать и опубликовать его. Решение заключалось в кодировании через javascript, как предполагалось m0s. TinyMCE имеет встроенную опцию можно установить

encoding: "xml" 

который я установил, но он не кодирует апостроф, который я имел в содержании. Поэтому для того, чтобы исправить это, вы должны добавить это к функции TinyMCE инициализации на странице:

TinyMCE 3.x

setup: function (ed) { 
    ed.onSaveContent.add(function (i, o) { 
     o.content = o.content.replace(/&#39/g, "&apos"); 
    }); 
} 

TinyMCE 4.x

setup: function(editor) { 
    editor.on("SaveContent", function(i) { 
     i.content = i.content.replace(/&#39/g, "&apos"); 
    }); 
} 

Я нашел решение здесь: http://blog.tentaclesoftware.com/archive/2012/05/21/asp-net-4-0-tinymce-and-ldquoa-potentially-dangerous-request.aspx

Надеюсь, что кто-то поможет!

+0

Вы не можете загрузить текст после этого. TinyMCE не будет обрабатывать их. – Akbari

0

Я решил это, добавив [AllowHtml] до содержимого объекта public virtual string content{ get; set; }.

Смежные вопросы