2009-08-20 5 views
11

Sto sviluppando un'applicazione ASP.NET 3.5 con Visual Studio 2008.Request.ServerVariables [ "SERVER_NAME"] è sempre localhost

La mia pagina di default ha un certo codice di reindirizzamento nel metodo Page Load:

protected void Page_Load(object sender, EventArgs e) 
    { 

     string sname = Request.ServerVariables["SERVER_NAME"].ToLower(); 

     if (sname.ToLower().Contains("intranet")) 
     { 
     Response.Redirect("/intranet/Default.aspx"); 
     } 
     else if ((sname.ToLower().Contains("extranet"))) 
     { 
      Response.Redirect("/extranet/Default.aspx"); 
     } 
     else { 
      Response.Redirect("/web/Default.aspx"); 
     } 
    } 

Ho modificato il file hosts in modo che la rete intranet e extranet reindirizzino sul mio computer locale.

127.0.0.1  intranet 
127.0.0.1  extranet 

ho quindi digitare l'URL http://extranet nel mio browser.

Tuttavia, il problema è che il valore della variabile server ha restituito da Request.ServerVariables [ "SERVER_NAME"] è sempre "localhost" e non "extranet"

Qualsiasi aiuto su come ottenere il giusto valore?

Molte grazie

+1

Si stava tentando di assicurarsi che il nome del server qui fosse extra-basso? – cchamberlain

risposta

12

Request.ServerVariables [ "HTTP_HOST"] ottiene il valore che stavo cercando :)

+1

Hooooly merda, ho cercato questa risposta per un'ora! Saluti! Potrei votare di nuovo e comprare una birra se potessi. – SeanKendle

0

Server_Name restituisce il nome del server host, alias DNS o indirizzo IP come apparirebbe negli URL autoreferenziali

Perché non si usa Request.URL?

+1

Stesso problema, il valore di Request.URL è - Url = {http: // localhost: 4690/default.aspx}. Grazie –

0

I file host reindirizzano solo le richieste a uno specifico indirizzo IP - non è possibile modificare il nome delle macchine richiedenti modificandole.

Problemi correlati