3

queryStrings を検証するために、現在の ASP.NET アプリで使用できるライブラリはありますか?

編集 ~ 正規表現を使用して、文字列のみ、数値のみ、長さ x の文字列などのパターンを検索します。

ありがとう

4

4 に答える 4

5

ライブラリについてはわかりませんが、クエリ文字列が存在するかどうかを確認するために使用できます。

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

于 2008-10-30T19:24:35.543 に答える
2

この種のことに対する最善のアプローチは、おそらく正規表現を使用して、探している条件を確認することです。

実際のシナリオでは、検証をプレゼンテーションから分離することをお勧めしますが、これは単なる例です。

  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.
        }
    }
于 2008-10-30T20:11:13.530 に答える
1

クエリ文字列を分割することについて質問するつもりですか? ASP.Net はすでにそれを行っています。Request.QueryString コレクションを介して個々のパラメーターにアクセスできます。

クエリ文字列の場合: ?fruit=apple&socks=white

Request.QueryString["fruit"] は "apple" を返し、Request.QueryString["socks"] は "white" を返します。

于 2008-10-30T19:29:07.607 に答える
0

リクエストが入ってくるときにクエリ文字列を検証することについて話している場合、.NETFrameworkはすでにこれを行っています。Pageには、デフォルトでtrueであるValidateRequestというプロパティがあり、クエリ文字列で無効なものがあると、何もしなくてもエラーが発生します(コードビハインドでクエリ文字列に初めてアクセスしたとき)。

データなどとして使用しているクエリ文字列の検証について話している場合は、このMSDNMagの記事が役立つ場合があります。

編集:あなたはデータ検証についてもっと質問しているようです。上でリンクしたMSDNの記事でいくつかの良いものを見つける必要があります。

于 2008-10-30T19:38:29.197 に答える