为什么默认设置Request ["url"]?

And*_*eas 4 c# asp.net

即使我没有POST或GET任何名为url的参数,它仍然会插入到Request变量中,导致Request["url"]始终设置该变量.默认值是请求的aspx文件.如果我在请求中包含url作为POST或GET参数,则会覆盖默认值.你能解释一下为什么在.net中实现这种行为吗?

Mar*_*ick 5

这在HttpRequest类信息中有记录.查看Items集合,它特别指出它将查看来自QueryString,Form,Cookies或ServerVariables的对象.这确实可以追溯到经典的ASP和其他语言已经实现类似,例如PHP虽然PHP认为它不安全,我相信它在v 5.5中被关闭了.微软还建议不要这样做,因为它可以被利用.在Request ["url"]的情况下,它将返回一个服务器变量.如果查询字符串中包含变量url,则Request ["url"]将返回querystring变量,因为它首先在列表中进行扫描.它被用于向后兼容经典ASP,因为它在经典ASP中被广泛使用.

HttpRequest类MSDN文档