这个工作对我来说:
//--------------------------------------------------------------------------------------------------------------------------
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地址),并返回子域。它在我们处于相当高产量的环境中运行良好。
如果您正在认真构建SaaS应用程序,并且您的团队对此类事情有困难,那么您的招聘流程存在问题。 – MarkR 2008-12-16 07:08:37