ASP MVC中的多租户

时间:2010-01-12 19:38:10

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

另一个多租户帖子我害怕。 我无法找到解决问题的好方法,我已经阅读了ASP MVC多租户的所有好帖子,但我还是需要一些好的建议。

我将为我的一位客户创建一个企业形象。他们的公司结构就像一家主要公司(例如Acme集团有限公司),它拥有其他几家公司(例如Acme Holding Ltd,Acme Technology Ltd.,Acme Maritime Ltd.等)。

我想使用一个ASP MVC项目作为所有站点的容器,以减少所需的代码并使其保持干燥状态。我还希望所有网站都使用相同的会员资格。

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

  

acme.com(“公司主页”)
  acme.com/Holding(“Acme Holding Ltd.”)
  acme.com/Maritme(“Acme Maritme Ltd.”)
  ...

这个结构对我很好,但我也希望网站的用户能够根据他们自己的独立域访问每个子站点,例如:

  

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”等

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

2 个答案:

答案 0 :(得分:6)

保持简单,使用IIS URL Rewrite Module。您可以将其设置为将acme-holding.com/*网址重写为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>

答案 1 :(得分:1)

我写了一篇关于多租户的博客,其中涵盖了你在这里尝试的内容。:

http://jasonjano.wordpress.com/2010/02/22/multi-presentation-websites-for-c/

祝你好运!