具有配置的Multitenant .net Core API

时间:2019-06-26 00:00:37

标签: api asp.net-core configuration multi-tenant

我们有一个.net核心api,它具有在多个租户的配置中定义的业务规则。并且目标是使该api为多租户,以便无论哪个租户发送请求,该api都可以通过从配置中读取相应的租户业务规则来满足该请求。

例如:

portalsettings.json
portalsettings.tenantA.json
portalsettings.tenantB.json

并加载如下配置:

var tenantName = "tenantA";//todo: read from request header
var builder = new ConfigurationBuilder()
    .SetBasePath(env.ContentRootPath)
    .AddJsonFile("portalsettings.json", optional: true, reloadOnChange: false)
    .AddJsonFile($"portalsettings.{tenantName}.json", optional: true)
    .AddEnvironmentVariables();
Configuration = builder.Build();

然后在控制器中注入配置,如下所示:

public class HomeController
{
  private readonly PortalSettingsPoCo _portalSettings { get; set; }

  public HomeController(IOptions<PortalSettingsPoCo> portalSettings)
  {
    _portalSettings = portalSettings.Value;
  }
}

上述代码的问题是,中间代码只能运行一次,并且我无法基于来自标头的tenantName注入门户设置。

请让我知道是否有人需要更多详细信息。

0 个答案:

没有答案