C# ASP-MVC中的多租户

C# ASP-MVC中的多租户,c#,asp.net,asp.net-mvc,multi-tenant,C#,Asp.net,Asp.net Mvc,Multi Tenant,恐怕还有另一个多租户的职位。 我只是找不到一个很好的解决我的问题的方法,我已经阅读了所有关于ASP MVC多租户的文章,但是我仍然需要一些好的建议 我将为我的一位客户建立一个公司形象。他们的公司结构类似于一家主公司(如Acme集团有限公司),拥有其他几家公司(如Acme控股有限公司、Acme技术有限公司、Acme海事有限公司等) 我想使用一个ASP MVC项目作为所有站点的容器,以减少所需的代码并保持干燥。我还希望所有的网站使用相同的成员数据库 我的第一个想法是为每个子公司创建一个控制器文件夹,

恐怕还有另一个多租户的职位。 我只是找不到一个很好的解决我的问题的方法,我已经阅读了所有关于ASP MVC多租户的文章,但是我仍然需要一些好的建议

我将为我的一位客户建立一个公司形象。他们的公司结构类似于一家主公司(如Acme集团有限公司),拥有其他几家公司(如Acme控股有限公司、Acme技术有限公司、Acme海事有限公司等)

我想使用一个ASP MVC项目作为所有站点的容器,以减少所需的代码并保持干燥。我还希望所有的网站使用相同的成员数据库

我的第一个想法是为每个子公司创建一个控制器文件夹,为公司主页创建一个根控制器。然后它看起来像:

acme.com(“公司主页”)
acme.com/Holding(“acme控股有限公司”)
acme.com/Maritme(“acme-Maritme有限公司”)

我认为这种结构很好,但我也希望网站的用户能够基于各自的独立域访问每个子网站,例如:

holding.acme.com(应指向“acme.com/holding”)。

这当然也会起作用,但问题是当用户被定向到“acme.com/Holding”时,我不希望url改变。我希望它仍然是“holding.acme.com”、“holding.acme.com/About”、“holding.acme.com/Contact”等,而不是“acme.com/holding/Contact”等

在这个特定的项目中使用什么样的最佳实践,有什么想法吗?

保持简单,使用IIS。您可以将其设置为将
acme holding.com/*
URL重写到
acme.com/holding/*

<rewrite>
    <rules>
        <rule name="Forward to acme.com">
            <match url=".*" />
            <action type="Rewrite" url="http://acme.com/Holding/{R:0}" />
        </rule>
    </rules>
</rewrite>

我写了一篇关于多租户的博客,内容完全涵盖了您在这里的尝试:


祝你好运

您有权访问MVC2吗?你看过其中的“区域”功能了吗?事实上,我使用的是MVC2,但我没有看过区域。我现在来看看。我想我会结合DaRKoN_关于MVC2中的“区域”的提示。我只是想知道这是否是最好的做法,或者我应该以不同的方式处理它?我相信最好的做法是重定向而不是重写。谷歌不喜欢相同的内容有不同的URL。