2016-07-24 89 views
3

我怎样才能得到当前的asp.net 5中的请求(在一个中间件组件)当前的子域。如何获取.Net Core中间件中的当前子域?

我以前使用下面的代码和寻找类似的东西。

public static string GetSubDomain() 
     { 
      string subDomain = String.Empty; 

      if (HttpContext.Current.Request.Url.HostNameType == UriHostNameType.Dns) 
      { 
       subDomain = Regex.Replace(HttpContext.Current.Request.Url.Host, "((.*)(\\..*){2})|(.*)", "$2").Trim().ToLower(); 
      } 

      if (subDomain == String.Empty) 
      { 

       subDomain = HttpContext.Current.Request.Headers["Host"].Split('.')[0]; 
      } 

      return subDomain.Trim().ToLower(); 
     } 

回答

4

我已经设法找出了我自己的答案在此期间......最受赞赏。

private static string GetSubDomain(HttpContext httpContext) 
     { 
      var subDomain = string.Empty; 

      var host = httpContext.Request.Host.Host; 

      if (!string.IsNullOrWhiteSpace(host)) 
      { 
       subDomain = host.Split('.')[0]; 
      } 

      return subDomain.Trim().ToLower(); 
     } 
+0

什么是Request.Host.Host? –