Asp.net core 根据我的需要修改/塑造Identity Net核心(多租户webapi设计)

Asp.net core 根据我的需要修改/塑造Identity Net核心(多租户webapi设计),asp.net-core,multi-tenant,claims-based-identity,Asp.net Core,Multi Tenant,Claims Based Identity,我正在构建一个具有点网络核心的多租户应用程序,并希望尝试使用identity core基础架构。首先,我将尝试总结与用户/租户/索赔相关的数据库设计,让您了解情况 我有一个在用户和租户(users\u-tenants)之间创建关系的表。这是一种多对多关系。一个用户可以属于多个租户,一个租户可以有多个用户 另一方面,我有一组定义良好的用户声明定义权限,如can_list_x、can_delete_x、can_edit_x等。我希望这些声明存储在从IdentityUserClaim继承的类中,并在初

我正在构建一个具有点网络核心的多租户应用程序,并希望尝试使用identity core基础架构。首先,我将尝试总结与用户/租户/索赔相关的数据库设计,让您了解情况

我有一个在用户和租户(users\u-tenants)之间创建关系的表。这是一种多对多关系。一个用户可以属于多个租户,一个租户可以有多个用户

另一方面,我有一组定义良好的用户声明定义权限,如can_list_x、can_delete_x、can_edit_x等。我希望这些声明存储在从IdentityUserClaim继承的类中,并在初始迁移中播种,可以调用此表(ApplicationUserClaim)

最后,我将创建一个表,该表在用户\u租户和ApplicationUserClaim(Claims\u UserTenants)之间创建关系。这将在用户、租户对和分配给它的声明之间建立关系。这也是一种多对多的关系

正如你所看到的,在我的设计中,我并没有在任何地方谈论角色。这就是我想要的。因此,我的DBContext继承自IdentityUserContext,而不是文档中所述的IdentityDBContext。我通过将ApplicationUser和ApplicationUserClaim传递到所需泛型列表来继承它:

public class ApplicationDbContext : IdentityUserContext<ApplicationUser,string, ApplicationUserClaim, IdentityUserLogin<string>, IdentityUserToken<string>>
{
}
public类ApplicationDbContext:IdentityUserContext
{
}
主要问题之一是,当我从迁移中更新数据库时,ApplicationUserClaim有一个名为UserId的字段,我不想要这个字段,因为现在已创建了与Claims\u UserTenants表的关系

因此,我的问题是:

  • 是否可以删除此字段?我试过这个:

    modelBuilder.Entity(ApplicationUserClaim)().Ignore(o=>o.UserId)

  • 但没有起作用

  • 可以修改标识核心以适应我的db设计吗?还是抛弃它,创建自己的系统更好?我希望我不必这样做,因为身份识别系统提供了很多内置的价值

  • 干杯

    无法删除内置模型的字段。您可以从这些内置模型继承字段,并将一些其他字段添加到自定义类中。创建自己的系统可能是一个更好的选择。是的,我决定这样做。在我自己的系统上工作了2天:)。谢谢无法删除内置模型的字段。您可以从这些内置模型继承字段,并将一些其他字段添加到自定义类中。创建自己的系统可能是一个更好的选择。是的,我决定这样做。在我自己的系统上工作了2天:)。谢谢