2012-08-04 35 views
2

我一直在为多租户ASP.Net MVC 4应用开发一些关于DI(Unity和Ninject)的研究。我读过的大多数文章似乎都将DI称作一种很好的工具,可以帮助向多租户Web应用程序中的租户提供自定义功能。除此之外,在Multitenant世界中还有什么用处。多租户应用中的依赖注入

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

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

回答

0

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

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

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

希望这能解决您的问题