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