这对我有用:
//--------------------------------------------------------------------------------------------------------------------------
public string GetSubDomain()
{
string SubDomain = "";
if (Request.Url.HostNameType == UriHostNameType.Dns)
SubDomain = Regex.Replace(Request.Url.Host, "((.*)(\\..*){2})|(.*)", "$2");
if (SubDomain.Length == 0)
SubDomain = "www";
return SubDomain;
}
我假设您希望在同一个 Web 应用程序中处理多个帐户,而不是使用 IIS 中的工具构建单独的站点。在我们的工作中,我们开始为每个子域创建一个新网站,但发现这种方法不能很好地扩展 - 特别是当您发布更新然后必须修改数十个网站时!因此,我确实推荐这种方法,而不是上面建议的面向服务器的技术,基于几年的经验,完全按照你的建议去做。
上面的代码只是确保这是一个完整的 URL(而不是 IP 地址)并返回子域。在相当大容量的环境中,它对我们来说效果很好。