首页 > 解决方案 > .NET Core 多租户实用性

问题描述

我想知道开发一个多租户的 .NET Core 应用程序是否可行,还是拥有一个普通的单租户应用程序就足够了?

我当前的数据库结构如下:

一个用户属于一个组织(系统管理员除外),一个组织可以有多个产品

当用户登录时,他们的部分声明是 OrganizationId,这意味着他们只能看到他们的 OrganizationId 拥有的产品。

目前,我的网址如下所示:

我的 Startup.cs url 路由如下所示:

app.UseMvc(routes =>
{
    routes.MapRoute(
      name: "areas",
      template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
    );
    routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}/{id?}"
    );

});

将我现在拥有的东西转换为多租户应用程序会很困难吗?类似于当属于某个组织的用户登录时,他们的 url 将是

组织名称.localhost.com:9988/Products/Product

还是我目前的方法足够了?

我打算构建它以支持多个组织。

标签: c#asp.net-mvcasp.net-core.net-coremulti-tenant

解决方案


我们目前所做的事情与您的理论设置非常相似。每个租户在他们自己的“服务器”(容器化)上运行相同的代码。配置中的大部分“难点”应该与服务器有关,而不是.Net本身。

根据您的业务领域,您可能想要确定是否有任何客户可能会因为他们的数据与其他人的数据混合而感到不安。如果这没什么大不了的,只是逻辑(组织)分离工作忽略了我。


推荐阅读