如何在Identity.net核心中自定义AddToRoleAsync



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

首先,要将ChartId属性添加到UserRoles表,可以创建一个从IdentityRole继承的Custom 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)
{
}
}

更多详细信息,请查看此链接。

其次,如果你想自定义/覆盖AddToRoleAsync方法,我认为你可能必须创建自定义UserManager和userRoleStore,你可以参考这个链接。

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

最新更新