Проверка строк запроса в ASP.NET
-
05-07-2019 - |
Вопрос
Есть ли библиотека, которую я могу использовать в своем текущем приложении ASP.NET для проверки строк запроса?
Редактировать ~ Использование регулярных выражений для поиска шаблонов, таких как строки, только числовые значения, строки длиной x и т. д.
Спасибо
Решение
Не знаю насчет библиотеки, но вы можете использовать ее, чтобы проверить, существует ли строка запроса:
if (!String.IsNullOrEmpty(Request.Querystring["foo"]))
{
// check further
}
else
{
// not there, do something else
}
Если вы хотите использовать регулярные выражения для дальнейшей проверки, вы можете создать класс, который принимает строку и возвращает логическое значение.
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;
}
Это хорошая бесплатная программа, которая поможет вам создавать регулярные выражения: Экспрессо
Другие советы
Лучшим подходом к такого рода вещам, вероятно, будет использование регулярных выражений для проверки любого условия, которое вы ищете.
В реальном сценарии было бы хорошо отделить проверку от представления, но только ради примера:
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.
}
}
Вы хотите спросить о разбиении строки запроса на части?ASP.Net уже делает это за вас.Доступ к отдельным параметрам можно получить через коллекцию Request.QueryString.
Для строки запроса:?fruit=apple&socks=белый
Request.QueryString["fruit"] даст вам "яблоко", а Request.QueryString["socks"] даст вам "белое".
Если вы говорите о проверке строки запроса для запросов по мере их поступления, .NET Framework уже делает это.Страница имеет свойство ValidateRequest, которое по умолчанию имеет значение true, и любые недопустимые значения в строке запроса вызовут ошибку (при первом обращении к строке запроса в вашем коде) без необходимости каких-либо действий.
Если вы говорите о проверке строк запроса, которые у вас есть как данные или что-то в этом роде, тогда эта статья в журнале MSDN Mag может помочь вам.
РЕДАКТИРОВАТЬ:Я вижу, вы спрашиваете больше о проверке данных.Вы должны найти кое-что хорошее в статье MSDN, ссылку на которую я дал выше.