Удаление проверки событий уменьшает количество контрольных точек безопасности в приложении. Вопрос в том, имеет ли это значение?
Простой пример, где это имеет значение
пользователю предоставляется 2 варианта, потому что они являются членами «Серебро» на сайте. Они создают запрос, который фактически подает вариант № 3 и получает привилегию «Золото», за которую они не платили.
примера, где он, вероятно, не имеет значения
Пользователя может поделку запроса, который утверждает, что они живут в стране, которая не была в списке на вашей странице. Вы используете транзакционную реляционную базу данных, которая улавливает это с ограничением внешнего ключа. Пользователь получает сообщение об ошибке и данные не сохраняются или не повреждаются.
Предлагаю ли вы, чтобы ваша база данных провела проверку? конечно нет. Но в этом примере никакого вреда не делается.
Если у вас есть сомнения, предположите, что это делает, и что кто-то найдет способ разорвать ваш код.
Идеальный подход
Во-первых, определить, почему проверка события взлома. По моему опыту, это обычно связано с неправильным использованием дизайна страницы/управления. За 15 лет разработки .NET я только однажды видел, что проверка событий нарушает дизайн элемента управления. Этот контроль был настолько сложным, что его в конечном счете пришлось переписать. Другими словами, если проверка событий вызывает проблему для вашего контроля, вы должны, вероятно, пересмотреть дизайн элемента управления, а не отключить проверку событий.
И наконец:
Выявление и проверка критического бизнес-правил на стороне сервера и независимо от ASP.NET. Не полагайтесь на структуру, чтобы выполнять свою работу; слишком легко предположить, что безопасность «обрабатывается» и оставляет в вашем дизайне зияющую дыру.
Аналогичный вопрос: http://stackoverflow.com/questions/1503630/purpose-for-pages-enableeventvalidation-false – Zachary