asp.net-core - ApiAuthorizationDbContext 的自定义角色类
问题描述
在过去的 2 天里,我一直在尝试让 ApiAuthorizationDbContext 设置自定义 IdentityRole。使用 IdentityDbContext 可以按如下方式完成:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
在 blazor 项目模板中,ApplicationDbContext 的声明如下:
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
{
public ApplicationDbContext(
DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
{
}
}
如何使用 ApiAuthorizationDbContext 做类似的事情。我无法从 ApiAuthorizationDbContext 类中找到这种支持。
谢谢。
解决方案
我没有找到一种方法来拥有我的自定义角色类,但我找到了一种方法来解决我的问题并将属性添加到现有的 IdentityRole 类中,并且会回答我的问题,以防其他人需要做类似的事情。这个问题的解决方案是阴影属性。
例如,如果我想为 IdentityRole 类创建一个 DateTime 属性,我们可以在 DBContext 类中使用以下代码。
protected override void OnModelCreating(ModelBuilder builder)
{
builder.Entity<IdentityRole>().Property<DateTime>("LastUpdated");
base.OnModelCreating(builder);
}
现在我们可以像这样访问该属性:
context.Entry(myRole).Property("LastUpdated").CurrentValue = DateTime.Now;
它不像拥有自定义类那么容易,但至少它让我有机会拥有 IdentityRole 类的自定义属性。
推荐阅读
- php - Wordpress:php strpos 不适用于 WP_Query
- python - 有没有办法从磁盘使用 spacy-transformers(离线)
- amazon-web-services - AWS Athena 可以查询存储在
柱子 - eclipse-plugin - Eclipse 的 CompletionProposal 弹出窗口中未显示所选项目的样式
- swiftui - SwiftUI TextEditor #hashtags 和文本占位符正确支持
- javascript - 我怎样才能让 express.static() 函数最后忽略“/”?
- java - 在身份验证之前访问枚举
- java - 无法创建 .jar 文件。使用 gradle 时出错,尤其是 ./gradlew build。获取 java.lang.IllegalAccessError
- r - 在 R Shiny 中,如何使用操作按钮更改主面板中的输出?
- python - 显示你好世界