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 :)

Was it helpful?

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:

  1. QueryString
  2. Form
  3. Cookies
  4. ClientCertificate
  5. ServerVariables
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top