c# - ASP MVC 中的 Multi-Tenancy

标签 c# asp.net asp.net-mvc multi-tenant

恐怕又是一个 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/

相关文章:

c# - 简单的 "Foreach"问题

c# - Excel - 通过 .Net 客户端的 OleDB 引用值

c# - Xaml 中的 OxyPlot

Jquery ajax 随机错误仅在 Chrome 中出现

在 Base 类中声明的 C# 接口(interface)方法不需要在 Derived 类中再次实现

asp.net - 为什么asp.net中只有特定的控件继承自IPostBackDataHandler接口(interface)

c# - Ajax 计时器在处理另一个请求时不轮询

c# - 使用未分配的局部变量

asp.net-mvc - 如何在 ASP.net/ASP.net MVC 中开发基于可插拔/可安装模块的应用程序

c# - 如何添加带有按钮单击事件 MVC 的新表?