如何检查请求的查询字符串中是否提供了 'unknown' 参数?

How to check if an 'unknown' parameter is supplied in a Request's Query String?

例如,如果查询字符串有 2 个预期参数,比如说。 param1 = "abc" & param2 = "def".

我知道 Request.QuerySring["abc"] 会检查查询字符串中的 "abc"。

但是有什么方法可以验证用户是否输入了 param1 或 param2 以外的任何其他内容?

谢谢。

是的,你可以使用 AllKeys:

Request.QueryString.AllKeys

获取除'param1'和'param2'之外使用的参数列表:

var expectedParams = new [] { "param1", "param2" };
var additionalParams = Request.QueryString.AllKeys.Where(k => !expectedParams.Contains(k));

如果您尝试检索 Request.QuerySring["param1"],您将得到值 abc。现在,如果用户更改查询字符串的 KEYS,您将无法接收它,因为您正在通过 KEYS 检索查询字符串值。所以你不需要验证用户输入。