Проверьте QueryStrings в ASP.NET - PullRequest
       28

Проверьте QueryStrings в ASP.NET

3 голосов
/ 30 октября 2008

Существует ли библиотека, которую я могу использовать в моем текущем приложении ASP.NET для проверки queryStrings?

Редактировать ~ Использование Regex для поиска шаблонов, таких как строка, только, только цифра, строка длиной x, ... и т. Д.

Спасибо

Ответы [ 4 ]

5 голосов
/ 30 октября 2008

Не знаю о библиотеке, но вы можете использовать, чтобы проверить, существует ли строка запроса:

if (!String.IsNullOrEmpty(Request.Querystring["foo"]))
{
   // check further
}
else
{
   // not there, do something else
}

Если вы хотите использовать выражения Reglar для дальнейшей проверки, вы можете создать класс, который принимает строку и возвращает логическое значение.

public static Boolean IsValid(String s)
{
    const String sRegEx = @"regex here";

    Regex oRegEx = new Regex(sRegEx , RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.IgnorePatternWhitespace | RegexOptions.Compiled);
    MatchCollection oMatches = oRegEx.Matches(s);

    return (oMatches.Count > 0) ? true : false;
}

Это хорошая бесплатная программа, которая поможет вам создать регулярные выражения: Expresso

2 голосов
/ 30 октября 2008

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

В реальном сценарии было бы хорошо отделить валидацию от презентации, но только для примера:

  if (!string.IsNullOrEmpty(Request.QueryString["Variable"]))
    {
        string s = Request.QueryString["Variable"];

        Regex regularExpression = new Regex("Put your regex here");

        if (regularExpression.IsMatch(s))
        {
            // Do what you want.
        }
    }
1 голос
/ 30 октября 2008

Вы хотите спросить о разбиении строки запроса на ее части? ASP.Net уже делает это для вас. Вы можете получить доступ к отдельным параметрам с помощью коллекции Request.QueryString.

Для строки запроса:? Fruit = apple & socks = white

Request.QueryString ["fruit"] даст вам "яблоко", а Request.QueryString ["socks"] даст вам "белый".

0 голосов
/ 30 октября 2008

Если вы говорите о проверке строки запроса для запросов по мере их поступления, .NET Framework уже делает это. Страница имеет свойство ValidateRequest, которое по умолчанию имеет значение true, и любое недопустимое значение в строке запроса вызовет ошибку (при первом обращении к строке запроса в вашем коде) без необходимости что-либо делать.

Если вы говорите о проверке строк запроса, которые у вас есть как данные или что-то еще, то эта статья MSDN Mag может вам помочь.

РЕДАКТИРОВАТЬ: я вижу, вы спрашиваете больше о проверке данных. В статье MSDN, на которую я ссылаюсь выше, вы найдете несколько полезных вещей.

...