恐怕又是一个 Multi-Tenancy 帖子。 我只是找不到解决我问题的好方法,我已经阅读了所有关于 ASP MVC Multi-Tenancy 的精彩文章,但我仍然需要一些好的建议。
我要为我的一位客户创建公司形象。他们的公司结构就像一个主公司(前 Acme Group Ltd.)拥有其他几家公司(例如 Acme Holding Ltd、Acme Technology Ltd.、Acme Maritime Ltd. 等)。
我想使用一个 ASP MVC 项目作为所有站点的容器,以减少所需的代码并使其保持干燥。我还希望所有网站都使用相同的成员(member)数据库。
我的第一个想法是为每个子公司创建一个 Controller 文件夹,为公司主页创建一个根 Controller 。然后它看起来像:
acme.com ("Corporate main page")
acme.com/Holding ("Acme Holding Ltd.")
acme.com/Maritme ("Acme Maritme Ltd.")
...
这个结构对我来说很好,但我也希望网站的用户基于他们自己单独的域访问每个子站点,例如:
holding.acme.com (This should direct to "acme.com/Holding").
...
这当然也可行,但问题是当用户被定向到“acme.com/Holding”时,我不希望 url 发生变化。我希望它仍然是“holding.acme.com”、“holding.acme.com/About”、“holding.acme.com/Contact”等,而不是“acme.com/Holding/Contact”等.
在这个特定项目中使用的最佳实践是什么,有什么想法吗?
最佳答案
保持简单,使用 IIS URL Rewrite Module .您可以将其设置为将 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>
关于c# - ASP MVC 中的 Multi-Tenancy ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2051785/