Obtenga la URL de la página ASP.Net en código subyacente

Tengo una página ASP.Net que se alojará en un par de servidores diferentes, y quiero obtener la URL de la página (o incluso mejor: el sitio donde está alojada la página) como una cadena para usar en el código subyacente. . ¿Algunas ideas?

0
agregado
Puntos de vista: 4
respuesta detallada aquí stackoverflow.com/questions/593709/…
agregado el autor Learning, fuente
agregado el autor Kimball Robinson, fuente

10 Respuestas

¿Quieres el nombre del servidor? O el nombre de host?

Request.Url.Host ala Stephen

Dns.GetHostName - Server name

Request.Url will have access to most everything you'll need to know about the page being requested.

0
agregado

Yo uso esto en mi código en una clase personalizada. Es muy útil para enviar correos electrónicos como [email protected] "no-reply @" + BaseSiteUrl Funciona bien en cualquier sitio.

// get a sites base urll ex: example.com
public static string BaseSiteUrl
{
    get
    {
        HttpContext context = HttpContext.Current;
        string baseUrl = context.Request.Url.Authority + context.Request.ApplicationPath.TrimEnd('/');
        return baseUrl;
    }

}

Si desea usarlo en codebehind, deshágase del contexto.

0
agregado

Si desea incluir una cadena única al final, similar a example.com?id=99999, use la siguiente

Dim rawUrl As String = Request.RawUrl.ToString()
0
agregado

Si solo desea que el esquema y la autoridad formen parte de la solicitud (protocolo, host y puerto), utilice

Request.Url.GetLeftPart(UriPartial.Authority)
0
agregado
Se publica una solución aún mejor en stackoverflow.com/questions/567590/…
agregado el autor Kimball Robinson, fuente
@Kimball No estoy seguro de que la concatenación de cuerdas sea una mejor solución.
agregado el autor WDuffy, fuente

Request.Url.Host

0
agregado

Utilizar esta:

Request.Url.AbsoluteUri

Eso le proporcionará la ruta completa (incluido http://.. .)

0
agregado
Recuerde, esto también incluirá la parte de consulta (? Clave = valor ...)
agregado el autor Marcel, fuente
Esto no funciona si la aplicación no está alojada en la raíz del servidor sino en un directorio. Si la aplicación está alojada en www.contoso.com/app/, esto solo devolverá www.contoso.com
agregado el autor linkerro, fuente

Estoy enfrentando el mismo problema y hasta ahoa he encontrado:

new Uri(Request.Url,Request.ApplicationPath)

o

Request.Url.GetLeftPart(UriPartial.Authoity)+Request.ApplicationPath
0
agregado
Request.Url.GetLeftPart(UriPartial.Authority) + Request.FilePath + "?theme=blue";

eso te dará el camino completo a la página en la que estás sentado. Añadí en la cadena de consulta.

0
agregado

estoy usando

Request.Url.GetLeftPart(UriPartial.Authority) +
        VirtualPathUtility.ToAbsolute("~/")
0
agregado

Usando un archivo JS puede capturar lo siguiente, que también puede usarse en el código subyacente:

<script type="text/javascript">
    alert('Server: ' + window.location.hostname);
    alert('Full path: ' + window.location.href);
    alert('Virtual path: ' + window.location.pathname);
    alert('HTTP path: ' + 
        window.location.href.replace(window.location.pathname, ''));    
</script>
0
agregado