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

Disons que je 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)?

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

 ssortingng baseUrl = Request.Url.GetLeftPart(UriPartial.Authority); 

Uri :: GetLeftPart Méthode :

La méthode GetLeftPart renvoie une chaîne contenant la partie la plus à gauche de la chaîne d’URI, se terminant par la partie spécifiée par la partie.

UriPartial Enumeration :

Les segments schéma et autorité de l’URI.

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

 public ssortingng FullyQualifiedApplicationPath { get { //Return variable declaration var appPath = ssortingng.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 = ssortingng.Format("{0}://{1}{2}{3}", context.Request.Url.Scheme, context.Request.Url.Host, context.Request.Url.Port == 80 ? ssortingng.Empty : ":" + context.Request.Url.Port, context.Request.ApplicationPath); } if (!appPath.EndsWith("/")) appPath += "/"; return appPath; } } 
 ssortingng hostUrl = Request.Url.Scheme + "://" + Request.Url.Host; //should be "http://hostnamehere.com" 

Si exemple URL est http://www.foobar.com/Page1

 HttpContext.Current.Request.Url; //returns "http://www.foobar.com/Page1" HttpContext.Current.Request.Url.Host; //returns "foobar.com" HttpContext.Current.Request.Url.Scheme; //returns "http/https" HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority); //returns "http://www.foobar.com" 

Pour obtenir la chaîne URL de demande complète:

 HttpContext.Current.Request.Url 

Pour obtenir la partie http://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 dans votre application via DNS peut apparaître comme URL de demande, en fonction de celui saisi par l’utilisateur.

– L’ajout du port peut aider lors de l’exécution d’IIS Express

 Request.Url.Scheme + "://" + Request.Url.Host + ":" + Request.Url.Port 
 ssortingng domainName = Request.Url.Host 

Je sais que c’est plus vieux mais la bonne façon de le faire maintenant est

 ssortingng Domain = HttpContext.Current.Request.Url.Authority 

Cela permettra d’obtenir l’adresse DNS ou ip avec le port pour un serveur.

 Match match = Regex.Match(host, "([^.]+\\.[^.]{1,3}(\\.[^.]{1,3})?)$"); ssortingng domain = match.Groups[1].Success ? match.Groups[1].Value : null; 

host.com => return host.com
s.host.com => return host.com

host.co.uk => retour host.co.uk
http://www.host.co.uk => retour host.co.uk
s1.www.host.co.uk => retourner host.co.uk

Cela fonctionne aussi:

chaîne url = HttpContext.Request.Url.Authority;

C # Exemple ci-dessous:

 ssortingng scheme = "http://"; ssortingng rootUrl = default(ssortingng); if (Request.ServerVariables["HTTPS"].ToSsortingng().ToLower() == "on") { scheme = "https://"; } rootUrl = scheme + Request.ServerVariables["SERVER_NAME"].ToSsortingng(); 
 ssortingng host = Request.Url.Host; Regex domainReg = new Regex("([^.]+\\.[^.]+)$"); HttpCookie cookie = new HttpCookie(cookieName, "true"); if (domainReg.IsMatch(host)) { cookieDomain = domainReg.Match(host).Groups[1].Value; } 

Cela retournera spécifiquement ce que vous demandez.

 Dim mySiteUrl = Request.Url.Host.ToSsortingng() 

Je sais que c’est une question plus ancienne. Mais j’avais besoin de la même réponse simple et cela renvoie exactement ce qui est demandé (sans le http: //).