【发布时间】:2015-07-23 00:40:18
【问题描述】:
我们有一个多租户 Asp.Net MVC 4 Web 应用程序,每个租户都有自己的文件存储库(文件系统中的一个文件夹)。我们采用共享数据库、共享模式的方法,并通过子域识别租户。
确保租户只能访问他的存储库文件夹而不能访问文件系统中的其他文件夹的最佳方法是什么?我们在应用程序的业务逻辑中检查它,但是如果我们犯了错误怎么办......?
在运行应用程序时,所有租户都在同一用户下运行(在 IIS 应用程序池中定义)。
我们是否需要将每个租户作为单独的用户提供服务 - 使用模拟?每次向服务器发出请求时,我们是否需要模拟 - 为了填充它?
我听说这有性能缺陷,不是首选方式,但什么是?
我们还有一个 Windows 服务,它在后台(针对所有租户)填充请求,并通过 MSMQ 发送给它。该服务是否也需要在每次收到请求时更改其身份?
编辑: 此外,我们需要一种隔离类型,如果有人上传了感染病毒的文件 - 它只会影响该租户的文件,而不是服务器上的每个租户。我们使用杀毒软件,但我们也需要这种分离,以防杀毒软件无法识别病毒。
谢谢
【问题讨论】:
标签: c# asp.net-mvc iis-7.5 impersonation multi-tenant