ASP.NETでQueryStringsを検証する
-
05-07-2019 - |
質問
queryStringsを検証するために、現在の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;
}
これは、regluar式を作成するのに役立つ無料のプログラムです。 Expresso
他のヒント
この種の最適なアプローチは、おそらく正規表現を使用して、探している条件をチェックすることです。
実際のシナリオでは、検証とプレゼンテーションを分離することをお勧めしますが、例のためだけです。
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 = white
Request.QueryString [" fruit"]は「apple」を提供し、Request.QueryString [&quotssocks"]は「white」を提供します。
リクエストのクエリ文字列の検証について話している場合、.NET Frameworkはすでにこれを実行しています。ページには、デフォルトでtrueであるValidateRequestというプロパティがあり、クエリ文字列で無効なものがあると、何もせずにエラー(コードビハインドでクエリ文字列に最初にアクセスしたとき)が発生します。
データまたは何かとして持っているクエリ文字列の検証について話している場合、このMSDN Magの記事が役立ちます。
編集:データ検証についてもっと質問しているようです。上でリンクしたMSDNの記事で、いくつかの優れたものを見つける必要があります。