如何在Asp.Net Mvc中进行Basecamp风格的账户?

Way*_*ina 5 asp.net asp.net-mvc saas multi-tenant

对于Asp.Net软件作为服务应用程序,我想做基于帐户的子域,如Basecamp和其他37Signals产品.例如,acme.myapp.com将为该客户加载该帐户并仅撤回其信息.

这在Ruby on Rails中很容易实现,但是如何在ASP.NET MVC中处理这个功能并且能够扩展到可能数百个帐户?

Mar*_*man 1

我们用:

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");
            }

            if (subDomain.Length == 0)
            {
                subDomain = "www";
            }

            return subDomain.Trim().ToLower();
        }
Run Code Online (Sandbox Code Playgroud)