Obter URL da página ASP.Net no code-behind

Eu tenho uma página ASP.Net que será hospedada em alguns servidores diferentes, e eu quero obter o URL da página (ou melhor ainda: o site onde a página está hospedada) como uma string para uso no code-behind . Alguma ideia?

0
adicionado
Visualizações: 1
resposta detalhada aqui stackoverflow.com/questions/593709/…
adicionado o autor Learning, fonte
adicionado o autor Kimball Robinson, fonte

10 Respostas

Você quer o nome do servidor? Ou o nome do 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
adicionado

Eu uso isso no meu código em uma classe personalizada. É útil para enviar e-mails como [email protected] "no-reply @" + BaseSiteUrl Funciona bem em qualquer site.

// 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;
    }

}

Se você quiser usá-lo no codebehind se livrar do contexto.

0
adicionado

Se você quiser incluir uma string única no final, semelhante a example.com?id=99999, use o seguinte

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

Se você quiser apenas o esquema e a parte de autoridade da solicitação (protocolo, host e porta), use

Request.Url.GetLeftPart(UriPartial.Authority)
0
adicionado
Uma solução ainda melhor é publicada no stackoverflow.com/questions/567590/…
adicionado o autor Kimball Robinson, fonte
@Kimball Não tenho certeza se concatenar as strings juntas é uma solução melhor.
adicionado o autor WDuffy, fonte

Request.Url.Host

0
adicionado

Usa isto:

Request.Url.AbsoluteUri

Isso vai te dar o caminho completo (incluindo http://.. .)

0
adicionado
Lembre-se, isso também incluirá a parte da consulta (? Key = value ....)
adicionado o autor Marcel, fonte
Isso não funciona se o aplicativo não estiver hospedado na raiz do servidor, mas em um diretório. Se o aplicativo estiver hospedado em www.contoso.com/app/, isso retornará apenas www.contoso.com
adicionado o autor linkerro, fonte

Estou enfrentando o mesmo problema e até agoua encontrei:

new Uri(Request.Url,Request.ApplicationPath)

ou

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

Isso lhe dará o caminho completo para a página em que você está sentado. Eu adicionei na querystring.

0
adicionado

estou usando

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

Usando um arquivo JS você pode capturar o seguinte, que pode ser usado no code-behind também:

<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
adicionado