queryStrings を検証するために、現在の ASP.NET アプリで使用できるライブラリはありますか?
編集 ~ 正規表現を使用して、文字列のみ、数値のみ、長さ x の文字列などのパターンを検索します。
ありがとう
queryStrings を検証するために、現在の ASP.NET アプリで使用できるライブラリはありますか?
編集 ~ 正規表現を使用して、文字列のみ、数値のみ、長さ x の文字列などのパターンを検索します。
ありがとう
ライブラリについてはわかりませんが、クエリ文字列が存在するかどうかを確認するために使用できます。
if (!String.IsNullOrEmpty(Request.Querystring["foo"]))
{
// check further
}
else
{
// not there, do something else
}
Reglar Expressions を使用してさらに検証する場合は、文字列を受け入れてブール値を返すクラスを作成できます。
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
この種のことに対する最善のアプローチは、おそらく正規表現を使用して、探している条件を確認することです。
実際のシナリオでは、検証をプレゼンテーションから分離することをお勧めしますが、これは単なる例です。
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["socks"] は "white" を返します。
リクエストが入ってくるときにクエリ文字列を検証することについて話している場合、.NETFrameworkはすでにこれを行っています。Pageには、デフォルトでtrueであるValidateRequestというプロパティがあり、クエリ文字列で無効なものがあると、何もしなくてもエラーが発生します(コードビハインドでクエリ文字列に初めてアクセスしたとき)。
データなどとして使用しているクエリ文字列の検証について話している場合は、このMSDNMagの記事が役立つ場合があります。
編集:あなたはデータ検証についてもっと質問しているようです。上でリンクしたMSDNの記事でいくつかの良いものを見つける必要があります。