【问题标题】:HOWTO implement multiple portal in ASP.Net MVC如何在 ASP.Net MVC 中实现多门户
【发布时间】:2012-08-21 15:05:11
【问题描述】:

我正在为我们的客户设计一个 Web 应用程序,其中每个客户都有一个进入系统的唯一门户。每个客户都需要能够管理他们自己的一组用户,而不需要关心其他客户的用户,因此两个不同的客户需要能够同时拥有一个用户 jasonsmith。

同时,一位客户表示不知道另一位客户的存在,也不知道这是一个多客户系统。

如今实施此类系统的标准是什么?我应该去哪里了解更多关于如何最好地实施这样一个系统的信息。

【问题讨论】:

  • 我想你可以在programmers.stackexchange.com得到更好的答案@
  • 您听起来像是在尝试将单个应用程序部署到服务器多个客户端。我理解错了吗?如果没有,您有什么理由不想将它们部署在 IIS 中的单独应用程序池中?

标签: asp.net-mvc design-patterns architecture portal enterprise-portal


【解决方案1】:

你说的是multitenancy

有几种方法可以解决这个问题。

最常见的方法是:

单一数据库

所有租户共享同一个数据库。因此,您将拥有一张包含所有租户信息的租户表。所有其他表都使用租户 ID 作为外键。

问题是您必须确保用户只能访问自己的信息(例如,用户可以尝试更改 uri 中的 id)。因此,您必须验证用户尝试访问的每个对象。

多个数据库

一些数据库引擎(如 RavenDB)可以毫无问题地处理多个数据库。这意味着每个客户都有自己的数据库(您在识别用户后在每个请求开始时加载该数据库)。

因此,在身份验证期间您将拥有一个数据库用户,以便能够识别租户和每个客户一个数据库。

此解决方案的好处是租户无法访问彼此的数据库。 (除非他们已经入侵了该帐户)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-25
    • 2010-11-10
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多