Альтернатива ValidateInput ("false") при передаче HTML в контроллер - PullRequest
2 голосов
/ 14 января 2010

У меня довольно простая страница ASP.NET MVC, и я использую TinyMCE, чтобы позволить пользователям вводить комментарии. Однако, когда я передаю данные в контроллер, я получаю следующее сообщение об ошибке:

потенциально опасный запрос. Форма значение было обнаружено с клиента

Консенсус заключается в том, что ValidateInput ("false") должен быть установлен в методе Action, но каким-то образом это не устраивает меня. Я пытался перехватить это, упорядочив свои методы действия и очистив данные с помощью ActionExecitomgContext ActionParameters, однако эта ошибка повторяется снова и снова. Кто-нибудь знает способ пропустить этот контент (или правильно перехватить его), не отключая ValidateInput

1 Ответ

2 голосов
/ 14 января 2010

Есть ли у вас особенности того, почему он плохо сидит? ValidateInput ("false") для одного действия, которое принимает HTML, является правильным способом. Проверка ввода - это старая функция ASP.NET, которая по умолчанию включена для обеспечения глубокой безопасности, но похожа на кувалду. Он не понимает нюансов разрешенного HTML.

Для этого одного метода действия вы можете написать свой собственный фильтр действия ValidateSafeHtmlAttribute и вместо этого поместить его в метод. Возможно, он внутренне инкапсулирует значение ValidateInput, установленное в false, и затем выполняет собственную проверку, специфичную для вашего сценария. Это было бы моей рекомендацией.

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