C'è un modo per ottenere HttpContext.Current.Request.Url.Host
e HttpContext.Current.Request.ApplicationPath
in una chiamata?Request.Url.Host e ApplicationPath in una chiamata
Qualcosa come "URL applicazione completa"?
EDIT: Precisazione - che cosa ho bisogno è questa la parte entro []:
http://[www.mysite.com/mywebapp]/Pages/Default.aspx
chiedo semplicemente per curiosità.
EDIT 2: Grazie per tutte le risposte, ma nessuno di loro era esattamente quello che stavo cercando. FYI, ho risolto il problema in questo modo (ma sono ancora interessato a sapere se c'è un modo più agevole):
public string GetWebAppRoot()
{
if(HttpContext.Current.Request.ApplicationPath == "/")
return "http://" + HttpContext.Current.Request.Url.Host;
else
return "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath;
}
Si desidera Request.Url.Authority, in teoria; L'host non ha la porta. Sfortunatamente, la cosa migliore da fare è usare ciò che è in Request.Headers ["HOST"], poiché si suppone che contenga il dns: port del server utilizzato dal client per connettersi. Se sei preoccupato per le richieste HTTP/1.0, puoi ricorrere a Request.Url.Host, ovviamente. Personalmente ho sperimentato Request.Url.Authority per restituire la porta a cui è associato il software del server, non la porta nell'intestazione "HOST" --- che è ciò che il client usava per connettersi. (FWIW, era nel sito Web di Report Manager di SSRS 2012). – Granger