如何检查请求的查询字符串中是否提供了 '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 检索查询字符串值。所以你不需要验证用户输入。
例如,如果查询字符串有 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 检索查询字符串值。所以你不需要验证用户输入。