這個工作對我來說:
//--------------------------------------------------------------------------------------------------------------------------
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