多租户身份验证,ASP.NET Boilerplate Module Zero中的IMustHaveTenant实体

时间:2017-12-06 09:19:53

标签: c# entity-framework-core multi-tenant asp.net-core-2.0 aspnetboilerplate

多租户身份验证

我作为管理员从swagger UI创建了一个新租户,我可以检查数据与管理员帐户一起成功创建的租户

现在我如何以新创建的租户的管理员身份登录?

我尝试通过邮递员进行令牌验证,在请求正文中指定tenancyName,它似乎只是从default租户 - 验证管理员,即使我在<垃圾邮件中放入垃圾邮件/ em> tenancyName字段,它不会检测到任何错误或异常。

我检查CoreModule.cs中的配置值, MultiTenancyEnabled已设置为true

enter image description here

与租户的实体关系

此外,我想将我的一个实体与tenant实体联系起来。所以我将IMustHaveTenant界面上的课程设置在FullAuditedEntity旁边,如下所示:

public class Rule: FullAuditedEntity, IMustHaveTenant
{
    public string columnA { get; set; }
    public string columnB { get; set; }
    public string columnC { get; set; }
    public int TenantId { get; set; }
}

是否足够或我是否必须在DbContext中进一步加入任何代码?

1 个答案:

答案 0 :(得分:1)

  

现在我如何以新创建的租户的管理员身份登录?

对于Token Based Authentication,请在 Abp.TenantId 标题中发送租户ID。

在Postman中,点击标题,将密钥添加为Abp.TenantId,将值添加为租户ID。如果您刚刚创建了新租户,那么2就会有一个ID为1的默认租户。

  

此外,我想将我的一个实体与tenant实体联系起来。 [...]这是否足够,还是我必须在DbContext中进一步加入任何代码?

您必须在DbContext中添加DbSet

public class MyDbContext : AbpDbContext
{
    public DbSet<Product> Products { get; set; }

    public MyDbContext(DbContextOptions<MyDbContext> options)
        : base(options)
    {
    }
}