我一直在为一个多租户的ASP.Net MVC4应用程序做一些DI (单位和对象)的研究。我读过的大多数文章似乎都提到DI是一个很好的工具,可以帮助在多租户web应用程序中为租户提供定制。除此之外,它在多租户世界中还有什么用处?
它能帮助在共享数据库模式场景中隔离数据吗?我正在尝试找到一种干净的方法来隔离客户之间的数据。(我在所有需要的表中使用tenantId )
(ASP.Net MVC4,实体框架5,SQL Server2012)
发布于 2013-03-24 22:25:29
IMHO,就使用共享模式的多租户应用程序中的数据隔离而言,我预计不会使用DI Container,因为它只是帮助解决对象依赖。您可以在应用程序中使用安全控制机制和租户隔离实践,根据操作租户或上下文租户来过滤数据。
您必须将租户标识符从表示层传递到其他层,直到数据库访问。在访问逻辑中,您将根据租户过滤数据,这可以使用表中的租户标识符来完成。
此外,在单代码库方法中,将不需要注入依赖项来标识租户。租户标识和验证、操作用户及其租户上下文将由您的应用程序在身份验证和授权阶段完成。
我希望这能解决你的问题
https://stackoverflow.com/questions/11806821
复制相似问题