Похожие презентации:
10 Лекция Валидация кода на стороне сервера и разработчика
1. Валидация кода на стороне сервера и разработчика.
1Валидация кода на
стороне сервера и
разработчика.
2.
2Валидация – это процесс проверки данных на соответствие
различным критериям. При разработке любого приложения в
большинстве случаев разработчику приходится иметь дело с
обработкой данных, которые ввел пользователь в соответствующие поля
на форме. По разным причинам пользователь может вводить
некорректные данные. Например, в поле "Возраст" он по ошибке
может указать отрицательное или вовсе нечисловое значение.
3.
3На практике встречается множество ситуаций, где определенные поля в
пользовательском интерфейсе могут содержать только те данные, которые строго
соответствуют определенным шаблонам. Если не учитывать подобные ситуации, то
в процессе работы приложения могут возникать сбои, связанные с некорректным
вводом пользователя. Ошибки могут быть допущены случайно или намеренно. В
последнем случае пользователь может вводить некорректные данные с целью
вывести приложение из строя и таким образом произвести атаку на приложение.
Поэтому каждое приложение, которое работает с данными, которые вводит
пользователь должно производить предварительную проверку корректности
введенных данных. Именно по этой причине каждый разработчик должен быть
знаком с механизмом валидации данных, которые указал пользователь.
4.
4Исторически, механизмы валидации данных разрабатывались
самими разработчиками прикладных приложений. Это означает, что при
каждой обработке запроса логике обработки запроса предшествовало
большое количество условных операторов, определяющих условия
корректности данных.
5.
5Поскольку на проверку вносится множества программного кода в
процесс обработки запроса и ухудшает читаемость программы,
платформа ASP.NET содержит ряд механизмов для выполнения валидации
в виде отдельных программных компонентов.
Существует два вида валидации данных, введенных пользователем.
клиентская валидация;
серверная валидация.
6.
6Клиентская валидация производится в бразуере на стороне клиента.
Как правило, логика валидации на стороне клиента реализуется
посредством сценариев JavaScript, которые запускаются внутри
бразуера. Клиентская валидация обычно содержит несложные алгоритмы
проверки. Это происходит в силу того, что клиентский код физически не
может обратиться к серверным ресурсам. Поэтому на стороне клиента
проверяются самые тривиальные сценарии.
7.
7Клиентская валидация может отсутствовать в приложении. Однако,
если сценарии валидации присутствуют на стороне клиента, это может
избавить от необходимости лишних обращений к серверу в случае
невыполнения простых условий проверки.
8.
8Серверная валидация работает в рамках программного кода,
размещенного на стороне сервера. Здесь проверяются всевозможные
случаи, в том числе те, которые уже были проверены на стороне клиента.
Кроме тривиальных проверок, на стороне сервера могут работать более
сложные алгоритмы. Необходимость дублирования проверки сценариев,
которые уже были проверены на стороне клиента, обусловлена тем, что
клиентские проверки могут не сработать, если в браузере у клиента
отключено исполнение сценариев JavaScript. Другими словами наличие
клиентской валидации не может гарантировать успешную проверку
определенных там ограничений.
9.
910.
10Таким образом, серверная валидация – это необходимый процесс, который
должен выполнятся всякий раз, когда обрабатывается пользовательский ввод, а
клиентская валидация – это опциональный компонент, который позволяет избавить
пользователя от необходимости лишних обращений к серверу и повысить
удобство работы с приложением.
11. Валидация данных в приложениях ASP.NET Web Forms
11Валидация данных в приложениях
ASP.NET Web Forms
При разработке приложений на базе ASP.NET Web Forms валидация данных,
введенных пользователем, осуществляется при помощи специальных элементов
управления – валидаторов. Валидаторы полностью реализуют логику проверки
достоверности введенных пользователем данных. Каждый валидатор проверяет
одно атомарное условие. Если требуется определить более сложную логику
проверку, то на странице использует несколько валидаторов одновременно.
12.
12Процесс проверки достоверности данных в рамках приложения на базе ASP.NET
Web Forms выглядит следующим образом:
При выполнении обратного вызова (Postback) на одной из ранних стадий жизненного
цикла страницы происходит вызов метода страницы Validate;
В рамках вызванного метода происходит перебор всех валидаторов на странице и
вызов их методов Validate. Перебор осуществляется на основе содержимого
коллекции Controls, которая присутствует в классе страницы и дочерних элементов
управления. Результат выполнения данного метода будет передан в логическое
свойство IsValid валидатора, которое присутствует в составе каждого валидатора;
В рамках метода страницы Validate просматриваются свойства IsValid у каждого из
валидатора и устанавливается свойство страницы IsValid. При этом если хотя бы
один из валидаторов имеет отрицательное значение свойства IsValid, то значение
свойства страницы IsValid также устанавливается в отрицательное значение (false).
Если значения свойства IsValid у всех положительное (true), то значение этого
свойства страницы также устанавливается в соответствующее состояние.
13.
13Элемент управления RequiredFieldValidator позволяет проверить ввел ли
пользователь данные в поле ввода или нет. Если поле ввода не содержит данных, то
процесс проверки данных завершается неуспехом. Для использования этого типа
валидаторов необходимо разместить его на форме и в свойстве ControlToValidate
указать имя элемента управления, значение которого должно проверяться.
14.
14Элемент управления RangeValidator позволяет проверить значение поля ввода
на заданный диапазон. Для задания границ диапазона используются свойства
MinimumValue и MaximumValue. При этом объект RangeValidator способен
работать с различными типами данных.
15.
15Элемент управления CompareValidator позволяет сравнивать значение одного
элемента управления с константой или значением другого элемента управления.
Для задания значения для сравнения используются свойства ValueToCompare (для
сравнения с константой) или ControlToCompare (для сравнения с другим
элементом управления). При этом может быть задано только одно из указанных
свойств.
16.
16Элемент управления CustomValidator позволяет выполнять специальные
процедуры проверки как на стороне клиента, так и на стороне сервера. Эти
процедуры могут привязываться к нему, чтобы проверка достоверности
выполнялась автоматически. Если выполнение проверки не проходит, для свойства
Page.IsValid устанавливается значение false, как и случае любого другого элемента
управления проверкой достоверности.
17.
17Процедуры проверки достоверности, которые CustomValidator должен
выполнять на стороне клиента и на стороне сервера, объявляются похожим
образом. Те и другие принимают два параметра: ссылку на элемент управления
проверкой достоверности, к которому они должны относиться, и специальный
целевой объект. Этот объект предоставляет свойство Value, в котором содержится
текущее значение связанного элемента управления вводом (значение,
подлежащее проверке), и свойство IsValid, которое позволяет определять, является
ли введенное значение допустимым.
Интернет