IdentityServer 4的新功能。我在文档中遵循了IdentityServer4 EntityFramework示例here。
运行迁移脚本后
dotnet ef migrations add InitialIdentityServerPersistedGrantDbMigration -c PersistedGrantDbContext -o Data/Migrations/IdentityServer/PersistedGrantDb
dotnet ef migrations add InitialIdentityServerConfigurationDbMigration -c ConfigurationDbContext -o Data/Migrations/IdentityServer/ConfigurationDb
它有效,现在我的应用程序有3个DB上下文。
我的问题是两个DB上下文是什么?应用程序db上下文与其他两个上下文有什么区别?
如果我更新或添加任何型号,是否需要更新所有型号?或者我何时应该在ApplicationDbContext上运行迁移以及何时在另外两个上运行。
对此有任何见解或文献表示赞赏。 感谢。
答案 0 :(得分:6)
想出来。这让我感到困惑的是这个。
有3个DB上下文,正如@Jasen所提到的,它是分割对实体或表的访问。
IdeneityServer4 + EntityFramework + ASP.NET Identity在数据库中创建以下表格:
上下文用于引用以下内容:
ApplicationDbContext - 负责涉及ASP.NET身份的用户所以表
PersistedGrantDbContext - 负责存储同意书,授权码,刷新令牌和参考令牌
ConfigurationDbContext - 负责数据库中剩余的所有其他内容
因此,对于迁移,如果我更新任何AspNet Identity模型(即ApplicationUser),那么我将在ApplicationDbContext上运行迁移。任何客户端表或其他范围都将在ConfigurationDbContext上运行。并且访问entites(或表)将是相应的上下文。