Реклама:

protected bool isFileUri(String path) {

return (String.Compare(path, 0, "FILE:", 0, 5, StringComparison.OrdinallgnoreCase) -= 0);

}

Ведение белых списков

Белые списки составляются путем определения набора допустимых условий, причем все, что не входит в этот набор, рассматривается как недопустимое. Это может быть набор разрешенных символов, допустимых имен файлов или приемлемых типов данных. Эти списки противоположны черным спискам и являются гораздо более мощным средством, поскольку сводят к минимуму вероятность того, что вы забудете выполнить проверку. Кроме того, эту технологию легче реализовать и расширить. При подтверждении данных всегда следует стремиться к использованию белых списков.

Преобразование типов данных

Одним из наиболее распространенных видов проверки входных данных является проверка типа данных на корректность и допустимость. Поскольку большую часть времени вы работаете со строковыми данными (например, из текстовых или списковых блоков), каждый тин данных в .NET имеет метол Parse, который позволяет создавать соответствующий тип данных из строки*. После выполнения метода Parse легко выполнить все виды проверок типов данных и арифметические операции.

Функция метода Parse состоит в том, что при сбое синтаксического анализа он вызывает исключительную ситуацию. Для использования данного метода нужно создать примерно такой код:

void VabdateFormOataO (

int rating; try

(

rating = int.Parse(txtRating.Text);

>

catch {

// Каким-то образом указываем на сбой преобразования

I

// Дополнительное подтверждение

}

Заключение каждого преобразования в блок try/catch приведет к загромождению кода, а вызов исключительной ситуации станет в CLR довольно дорогостоящей операцией. В версии .NET 2.0 введен новый метод TryParse, который просто возвращает булево значение, указывающее на успех или сбой преобразования. В случае успешного преобразования полученное значение помещается в параметр out.

Синтаксический анализ также зависит от культуры. Это следует учитывать, задавая культуру страницы методом Thread.CurrentCulcure. Более полные сведения об этой проблеме можно найти по адресу htXp://msmvps.com/btogs/calinoiu/archive/2006/06/30/103'l26.aspx.

ПРИМЕЧАНИЕ Тип данных DateTime использует также метод TryParseExact, позволяющий точно задать ожидаемый формат даты и времени.

Таким образом, метод TryParse гораздо проще использовать для получения результатов в более производительном коде.

void ValidateFormDa.ta() \

int rating;

if (! irrt. I ryParseCrxlHating.Text, out rating)) I

// Каким-10 образом указываем на сбой преобразования

)

// Дополнительное подтверждение if (rating > 10) < . .. } // Использогтание оценки

>

Регулярные выражения

Регулярные выражения являются очень мощным методом реализации белых списков и сравнения строк С шаблонами. Поддержка RegEx (так обычно называются регулярные выражении) выполняется в пространстве имен System.Tbxt.RegularExpression. Проверку на соответствие строк выражению можно реализовать с помощью следующею кода.

// Минимальная длина - Ь / Миксимальнак длина 20 // Разрешенные символы: a-/, A-Z. 0-9 string reoexUscrnyme ■ $'"[a-zA-ZO-9. ){5.20)S"; it (IRegex,IsMatch(


⇐ Предыдущая страница| |Следующая страница ⇒