¿Hay alguna manera de obtener HttpContext.Current.Request.Url.Host
y HttpContext.Current.Request.ApplicationPath
en una sola llamada?Request.Url.Host y ApplicationPath en una llamada
¿Alguien como "full application url"?
EDIT: Aclaración - lo que necesito es esta la parte dentro de []:
http://[www.mysite.com/mywebapp]/Pages/Default.aspx
te pido simplemente por curiosidad.
EDIT 2: Gracias por todas las respuestas, pero ninguna de ellas era exactamente lo que estaba buscando. FYI, he resuelto el problema de esta manera (pero todavía estoy interesado en saber si hay una manera más suave):
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;
}
Quiere Request.Url.Authority, en teoría; Host no tiene el puerto. Desafortunadamente, su mejor opción es usar lo que está en Request.Headers ["HOST"], ya que se supone que contiene el dns: puerto del servidor que el cliente utilizó para conectarse. Si le preocupan las solicitudes HTTP/1.0, puede recurrir a Request.Url.Host, por supuesto. He experimentado personalmente Request.Url.Authority para devolver el puerto al que está vinculado el software del servidor, no el puerto en el encabezado "HOST" --- que es lo que el cliente utilizó para conectarse. (FWIW, estaba en el sitio web del Administrador de informes de SSRS 2012). – Granger