gpt4 book ai didi

c# - asp.net 核心身份来自 BaseApplicationUser 的多个用户

转载 作者:行者123 更新时间:2023-12-05 04:57:07 25 4
gpt4 key购买 nike

我正在为我的用户管理系统使用 ASP.NET Core 2.2 Identity。我需要有几种类型的用户...例如,仓库用户和应用程序用户,我创建了一个继承自身份用户类的基类 => IdentityUser<long>

public class BaseApplicationUser : IdentityUser<long>
{
public string FirstName { set; get; }
public string LastName { set; get; }
...
}

仓库用户和商店用户继承自BaseApplicationUser创建不同的用户。

public class ApplicationUser : BaseApplicationUser
{
}

我只想为他们所有人准备一张 table => AspNetUsersOnModelCreating添加此代码:

protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<ApplicationUser>();
builder.Entity<WarehouseApplicationUser>();
}

在 Context 中的 DbSets 中:

public DbSet<ApplicationRole> ApplicationRole { get; set; }
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
public DbSet<WarehouseApplicationRole> WarehouseApplicationRole { get; set; }
public DbSet<WarehouseApplicationUser> WarehouseApplicationUsers { get; set; }

我需要为用户创建单独的角色类,例如 ApplicationRoleWarehouseApplicationUsers .

问题是什么?

  1. 如何在 asp.net core Identity 中创建不同的用户? ( 最好方式)
  2. 另一个问题是,当我向 ApplicationUser 添加字段时, 该字段已成功添加到 AspNetUsers ,但是当我向 WarehouseApplicationUsers 添加一个字段时, EF Core 添加了名为 WarehouseApplicationUsers 的新表和 WarehouseApplicationRoleWarehouseApplicationUserRole然后向 WarehouseApplicationUsers 添加一个字段 table ……这是什么!

最后,如何继承和构建不同用户的层次结构?非常感谢

最佳答案

问题 1: How to create different users in asp.net core Identity ?

ASP.NET Core 提供了一个内置方法:AddIdentityCore<TUser> .

您可以这样使用它:services.AddIdentityCore<ApplicationUser>();

更多详情可以看这个thread .

问题2:

这是一个例子,你可以对比一下你的代码:

基础应用用户:

 public class BaseApplicationUser: IdentityUser
{
public string FirstName { set; get; }
public string LastName { set; get; }
}

应用用户:

 public class ApplicationUser : BaseApplicationUser
{
public string Year { get; set; }
}

仓库应用用户:

public class WarehouseApplicationUser : BaseApplicationUser
{
public string Age { get; set; }
}

应用程序数据库上下文:

public class ApplicationDbContext : IdentityDbContext<BaseApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}

public DbSet<ApplicationUser> ApplicationUsers { get; set; }

public DbSet<WarehouseApplicationUser> WarehouseApplicationUsers { get; set; }
}

迁移结果: enter image description here

关于c# - asp.net 核心身份来自 BaseApplicationUser 的多个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64634202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com