Я желаю позволить пользователям вводить HTML только в единственный TextBox. Я понимаю, что возможно измениться ValidateRequest
в директиве страницы ко лжи для удаления защиты.
Я предполагаю, что это позволяет HTML вводиться в любой TextBox на странице. Должен там так или иначе применяться ValidateRequest="false"
только на единственном управлении?
Спасибо за любую справку.
Нет, валидация запроса выполняется для всего запроса или ничего.
Валидация была добавлена по умолчанию, чтобы защитить разработчиков, которые ничего не знают о валидации ввода. Если вы знаете, что все вводимые данные должны рассматриваться как небезопасные, и знаете, как правильно кодировать данные, которые вы используете из ввода, чтобы защитить себя от таких вещей, как SQL-инъекции и межсайтовый скриптинг, вы можете отключить валидацию.
Обновление: В .NET 4.5 было добавлено свойство ValidateRequestMode
, которое позволяет исключить элементы управления из глобальной проверки страницы.
Попробуйте отключить ValidateRequest и используйте этот метод для удаления разметки с каждого отдельного элемента управления / параметра:
public static string RemoveMarkUp(this string s) {
return Regex.Replace(s, @"<[a-zA-Z\/][^>]*>", string.Empty);
}