2

我一直在对多租户 ASP.Net MVC 4 应用程序的 DI(Unity 和 Ninject)进行一些研究。我读过的大多数文章似乎都将 DI 称为一个很好的工具,可以帮助为多租户 Web 应用程序中的租户提供自定义。除此之外,它在多租户世界中还有什么用处。

它可以帮助共享数据库模式场景中的数据隔离吗?我正在尝试找到一种干净的方法来隔离客户之间的数据。(我在所有需要的表中使用tenantId)

(ASP.Net MVC4,实体框架 5,SQL Server 2012)

4

1 回答 1

0

恕我直言,就使用共享模式的多租户应用程序中的数据隔离而言,我预计不会使用 DI 容器,因为它只是帮助解决对象依赖关系。您可以在应用程序中拥有安全控制机制和租户隔离实践,以根据运营租户或上下文租户过滤数据。

您必须将租户标识符从表示层传递到其他层,直到访问数据库。在访问逻辑中,您将根据租户过滤数据,这可以使用表中的租户标识符来完成。

此外,在单一代码库方法中,不需要注入依赖项来识别租户。租户识别和验证操作用户及其租户上下文将由您的应用程序在身份验证和授权阶段本身完成。

希望这能解决您的问题

于 2013-03-24T14:25:29.327 回答