Ten en cuenta que en la informática cualquier problema casi siempere suele tener más de una resoluciones, no obstante te compartimos lo más óptimo y eficiente.
Solución:
Intente obtener la “parte izquierda” de la URL, así:
string domainName = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority);
Esto te dará http://localhost:5858
o https://www.somedomainname.com
ya sea que esté en local o en producción. Si quieres soltar el www
parte, debe configurar IIS para hacerlo, pero ese es otro tema.
Tenga en cuenta que la URL resultante no tendrá una barra inclinada al final.
Utilizando Request.Url.Host
es apropiado: es cómo recupera el valor de HTTP Host:
encabezado, que especifica qué nombre de host (nombre de dominio) desea el UA (navegador), ya que la parte de la ruta de recursos de la solicitud HTTP no incluye el nombre de host.
Tenga en cuenta que localhost:5858
no es un nombre de dominio, es un especificador de punto final, también conocido como “autoridad”, que incluye el nombre de host y el número de puerto TCP. Esto se recupera accediendo Request.Uri.Authority
.
Además, no es válido obtener somedomain.com
desde www.somedomain.com
porque un servidor web podría configurarse para servir un sitio diferente para www.somedomain.com
comparado con somedomain.com
sin embargo, si está seguro de que esto es válido en su caso, deberá analizar manualmente el nombre de host, aunque usando String.Split('.')
funciona en un apuro.
Tenga en cuenta que la configuración del servidor web (IIS) es distinta de la configuración de ASP.NET, y que ASP.NET en realidad ignora por completo la configuración de enlace HTTP de los sitios web y las aplicaciones web en las que se ejecuta. El hecho de que tanto IIS como ASP.NET compartan los mismos archivos de configuración (web.config
) es una pista falsa.
Aquí hay una captura de pantalla de Request.RequestUri
y todas sus propiedades para referencia de todos.
Comentarios y valoraciones
Si guardas algún recelo y capacidad de acrecentar nuestro tutorial te recordamos dejar una nota y con deseo lo leeremos.