Asp.net
如何在 .Net Core 中間件中獲取目前子域?
如何在 asp.net 5 中獲取目前請求(在中間件組件中)的目前子域。
我以前使用下面的程式碼並尋找類似的東西。
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(); }
與此同時,我已經設法找出自己的答案……感謝評論。
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(); }
如果您使用的是跨域,最好的選擇是使用 Request-Header 中的 Origin。就像是:
Request.Headers.TryGetValue("Origin", out var origin);然後使用 split 或任何您喜歡的方式操作該值。