100 votes

Comment puis-je obtenir l'URI du domaine racine dans ASP.NET?

Disons que j'héberge un site Web à l' adresse http://www.foobar.com .

Existe-t-il un moyen de vérifier par programmation "http://www.foobar.com/" dans mon code (sans avoir à le coder en dur dans ma configuration Web)?

175voto

George Points 2918
string baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);

122voto

Brian Hasden Points 2501

Pour ceux qui le demandent encore, une réponse plus complète est disponible à l’ adresse http://devio.wordpress.com/2009/10/19/get-absolut-url-of-asp-net-application/ .

 public string FullyQualifiedApplicationPath
{
    get
    {
        //Return variable declaration
        var appPath = string.Empty;

        //Getting the current context of HTTP request
        var context = HttpContext.Current;

        //Checking the current context content
        if (context != null)
        {
            //Formatting the fully qualified website url/name
            appPath = string.Format("{0}://{1}{2}{3}",
                                    context.Request.Url.Scheme,
                                    context.Request.Url.Host,
                                    context.Request.Url.Port == 80
                                        ? string.Empty
                                        : ":" + context.Request.Url.Port,
                                    context.Request.ApplicationPath);
        }

        if (!appPath.EndsWith("/"))
            appPath += "/";

        return appPath;
    }
}
 

81voto

JoshBerke Points 34238

HttpContext.Current.Request.Url peut vous obtenir toutes les informations sur l'URL. Et peut décomposer l'URL en ses fragments.

27voto

Ben Lesh Points 39290
string hostUrl = Request.Url.Scheme + "://" + Request.Url.Host; //should be "http://hostnamehere.com"

16voto

Rex M Points 80372

Pour obtenir la chaîne d'URL de requête complète:

 HttpContext.Current.Request.Url
 

Pour obtenir la partie www.foo.com de la demande:

 HttpContext.Current.Request.Url.Host
 

Notez que vous êtes, dans une certaine mesure, à la merci de facteurs extérieurs à votre application ASP.NET. Si IIS est configuré pour accepter plusieurs en-têtes ou n'importe quel en-tête d'hôte pour votre application, l'un des domaines résolus en votre application via DNS peut s'afficher en tant qu'URL de demande, en fonction de celui que l'utilisateur a saisi.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X