asp.net-core - 如何将新列添加到 Identity RoleClaims 表中(asp net core)
问题描述
我正在尝试向身份(asp net core)RoleClaims 表添加一列,但我发现内容只是为了扩展角色和用户类而不是RoleClaims。有人可以提供示例或指出内容。
解决方案
您需要创建一个新类来扩展RoleClaim
. 如果您的密钥类型是,以下是如何执行此操作的示例string
:
public class ApplicationRoleClaim : IdentityRoleClaim<string>
{
public virtual ApplicationRole Role { get; set; }
}
您可以将所需的任何新属性添加到此类,然后创建迁移以将它们添加为表列。
您还需要告诉您IdentityDbContext
也使用这个新类。这是文档中的一个示例:
public class ApplicationDbContext
: IdentityDbContext<
ApplicationUser, ApplicationRole, string,
ApplicationUserClaim, ApplicationUserRole, ApplicationUserLogin,
ApplicationRoleClaim, ApplicationUserToken>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
编辑:
使用您的自定义ApplicationRoleClaim
类,您也可以覆盖OnModelCreating
。这是文档中的一个示例:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
⋮
modelBuilder.Entity<IdentityRoleClaim<string>>(b =>
{
b.ToTable("MyRoleClaims");
});
⋮
}
推荐阅读
- arrays - 为 laravel 请求创建一个嵌套数组
- php - PostgreSQL:没有运算符匹配给定的名称和参数类型。您可能需要使用存在函数在 codeigniter 中添加显式类型转换
- javascript - 如何强制 js.erb 刷新 Ruby 代码
- node.js - 使用 redis 和 node.js 问题 - Redis_client.hget 总是返回 false
- scala - 如何在火花中计算跨执行者的指标
- kubernetes-ingress - IstioIngressGateway 和具有自定义 TCP 端口的虚拟服务
- c# - 什么是类型“object {string}”?
- google-cloud-platform - 创建 Google Cloud Dataproc 集群时出错 - 无法访问初始化代理脚本
- visual-studio - 每次启动 Visual Studio 之前都必须重新安装 FiraCode
- php - 为什么下面的代码给出没有错误或警告的空白输出?