在ASP.NET中验证QueryStrings

时间:2008-10-30 19:21:17

标签: asp.net validation query-string

是否有可以在我当前的ASP.NET应用程序中使用的库来验证queryStrings?

编辑〜使用正则表达式查找模式,如字符串,仅限数字,仅限数字,长度为x的字符串,等等

由于

4 个答案:

答案 0 :(得分: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;
}

这是一个很好的免费程序,可以帮助您构建regluar表达式:Expresso

答案 1 :(得分: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.
        }
    }

答案 2 :(得分:1)

您的意思是询问是否将查询字符串分解为其部分? ASP.Net已经为您做到了这一点。您可以通过Request.QueryString集合访问各个参数。

对于查询字符串:?fruit = apple& socks = white

Request.QueryString [“fruit”]会给你“apple”,而Request.QueryString [“socks”]会给你“白色”。

答案 3 :(得分:0)

如果您正在讨论在请求进入时验证查询字符串,.NET Framework已经这样做了。 Page有一个名为ValidateRequest的属性,默认情况下为true,查询字符串中的任何内容都会导致错误(第一次在您的代码中访问查询字符串)而无需执行任何操作。

如果您正在讨论验证查询字符串作为数据或其他内容,那么this MSDN Mag article可能会对您有所帮助。

编辑:我看到你在询问有关数据验证的更多信息。您应该在我上面链接的MSDN文章中找到一些好东西。