如何在 Identity .net 核心中自定义 AddToRoleAsync
How can I customize AddToRoleAsync in Identity .net core
我想将一个名为 ChartId 的字段添加到 UserRoles table。
之后,我想在滚动时为用户保存ID图表。为此,我使用方法:AddToRoleAsync。如何自定义此方法?
首先,要将 ChartId 属性 添加到 UserRoles table,您可以创建一个继承自 IdentityRole 的自定义 ApplicationRole class,然后添加自定义属性,然后更新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。
其次,如果您想customize/override AddToRoleAsync 方法,我想您可能必须创建自定义UserManager 和userRoleStore,您可以参考。
此外,由于ChartId在角色table上,所以当添加新角色时,您可以设置ChartId 属性。然后,当您使用 AddToRoleAsync 方法将用户添加到 Role 时,无需设置 ChartId 属性。如果要更新 Role 的 ChartId 值,可以先找到 Role 并更新它,然后使用 AddToRoleAsync 方法将 User 添加到 Role 中。在这种情况下,我认为没有必要自定义 AddToRoleAsync 方法,我们可以只创建一个自定义的 ApplicationRole class.
我想将一个名为 ChartId 的字段添加到 UserRoles table。 之后,我想在滚动时为用户保存ID图表。为此,我使用方法:AddToRoleAsync。如何自定义此方法?
首先,要将 ChartId 属性 添加到 UserRoles table,您可以创建一个继承自 IdentityRole 的自定义 ApplicationRole class,然后添加自定义属性,然后更新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。
其次,如果您想customize/override AddToRoleAsync 方法,我想您可能必须创建自定义UserManager 和userRoleStore,您可以参考
此外,由于ChartId在角色table上,所以当添加新角色时,您可以设置ChartId 属性。然后,当您使用 AddToRoleAsync 方法将用户添加到 Role 时,无需设置 ChartId 属性。如果要更新 Role 的 ChartId 值,可以先找到 Role 并更新它,然后使用 AddToRoleAsync 方法将 User 添加到 Role 中。在这种情况下,我认为没有必要自定义 AddToRoleAsync 方法,我们可以只创建一个自定义的 ApplicationRole class.