Search order of HttpRequest indexer
-
06-07-2019 - |
Question
If you do a simple index into Request's items via Request[key], it looks in 4 locations. What's the order? Someone makes a guess on that page at "Cookies, ServerVariables, Form and QueryString". Does anyone know for sure? Documentation would be a bonus :)
Solution
public string this[string key] { get; }
Declaring Type: System.Web.HttpRequest Assembly: System.Web, Version=2.0.0.0
public string this[string key]
{
get
{
string str = this.QueryString[key];
if (str != null)
{
return str;
}
str = this.Form[key];
if (str != null)
{
return str;
}
HttpCookie cookie = this.Cookies[key];
if (cookie != null)
{
return cookie.Value;
}
str = this.ServerVariables[key];
if (str != null)
{
return str;
}
return null;
}
}
OTHER TIPS
Just use Reflector and you can see it for yourself. The order is QueryString, Form, Cookies, then ServerVariables.
This is from an ASP site, but it still applies to ASP.NET:
All request object variables can be accessed directly by calling Request(variable) without the collection name. In this case, the Web server searches the collections in the following order:
- QueryString
- Form
- Cookies
- ClientCertificate
- ServerVariables