【问题标题】:How can I customize AddToRoleAsync in Identity .net core如何在 Identity .net 核心中自定义 AddToRoleAsync
【发布时间】:2020-11-18 13:59:27
【问题描述】:

我想在 UserRoles 表中添加一个名为 ChartId 的字段。 之后,我想在滚动时为用户保存 ID 图表。为此,我使用方法:AddToRoleAsync。如何自定义此方法?

【问题讨论】:

    标签: c# asp.net-core .net-core asp.net-identity


    【解决方案1】:

    首先,要将 ChartId 属性添加到 UserRoles 表中,您可以创建一个继承自 IdentityRole 的自定义 ApplicationRole 类,然后添加自定义属性,然后更新 DbContext 以使用自定义 ApplicationRole 并注册自定义 DbContext,代码如下这个:

    using System;
    using Microsoft.AspNetCore.Identity;
    
    public class ApplicationRole : IdentityRole<Guid>
    {
        public string Description { get; set; }
    }
    

    和:

    public class ApplicationDbContext :
        IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
    {
        public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
            : base(options)
        {
        }
    }
    

    更多详细信息,请查看this link

    其次,如果你想自定义/覆盖AddToRoleAsync方法,我想也许你必须创建自定义的UserManager和userRoleStore,你可以参考this link

    此外,由于 ChartId 在 Roles 表中,当添加新角色时,您可以设置 ChartId 属性。然后,当您使用 AddToRoleAsync 方法将用户添加到角色时,无需设置 ChartId 属性。如果要更新 Role 的 ChartId 值,可以先找到 Role 并更新它,然后使用 AddToRoleAsync 方法将 User 添加到 Role。在这种情况下,我认为不需要自定义 AddToRoleAsync 方法,我们可以只创建一个自定义的 ApplicationRole 类。

    【讨论】:

      猜你喜欢
      • 2021-06-11
      • 1970-01-01
      • 2022-01-14
      • 2018-01-20
      • 2016-03-03
      • 2020-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多