c# - 如何在 Identity .net 核心中自定义 AddToRoleAsync
问题描述
我想在 UserRoles 表中添加一个名为 ChartId 的字段。之后,我想在滚动时为用户保存 ID 图表。为此,我使用方法:AddToRoleAsync。如何自定义此方法?
解决方案
首先,要将 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)
{
}
}
更多详细信息,请查看此链接。
其次,如果您想自定义/覆盖 AddToRoleAsync 方法,我认为您可能必须创建自定义 UserManager 和 userRoleStore,您可以参考此链接。
此外,由于 ChartId 在 Roles 表中,因此在添加新角色时,您可以设置 ChartId 属性。然后,当您使用 AddToRoleAsync 方法将用户添加到角色时,无需设置 ChartId 属性。如果要更新 Role 的 ChartId 值,可以先找到 Role 并更新它,然后使用 AddToRoleAsync 方法将 User 添加到 Role。在这种情况下,我认为不需要自定义 AddToRoleAsync 方法,我们可以只创建一个自定义的 ApplicationRole 类。
推荐阅读
- wordpress - 是否有任何插件将上传到 woo 商务产品的照片数量限制为 5
- python - 如何在现有列表之后添加列表但不扩展它?
- flutter - Dart 数据转换性能发布 vs 调试
- r - 如何用 highcharter 库做一个半圆形甜甜圈?
- ios - 更新到 MacOS Catalina 后 Xcode 无法打开
- c# - Using setter in ViewModel using another property
- scrapy - Scrapy如何循环从不同的div类中提取数据
- php - AND 运算符忽略空值
- java - 我想在我的 Android 应用程序中集成 NFIQ sdk
- lean - TPIL 4.4:示例:¬ (∀ x, ¬ px) → (∃ x, px)