将实体框架添加到IdentiyServer4客户端表

时间:2018-02-01 13:39:59

标签: c# entity-framework asp.net-core .net-core identityserver4

我有一个DbContext是Identityserver4的一部分我对实体框架很新。

namespace IdentityServer4.EntityFramework.DbContexts 
{
public class ConfigurationDbContext : DbContext, IConfigurationDbContext, IDisposable
{
    public ConfigurationDbContext(DbContextOptions<ConfigurationDbContext> options, ConfigurationStoreOptions storeOptions);

    public DbSet<Client> Clients { get; set; }
    public DbSet<IdentityResource> IdentityResources { get; set; }
    public DbSet<ApiResource> ApiResources { get; set; }

    public Task<int> SaveChangesAsync();
    protected override void OnModelCreating(ModelBuilder modelBuilder);
}
}

namespace IdentityServer4.EntityFramework.Entities
{
public class Client
{
 // I want to add a column here
 ................

}

问题是我想扩展Client类,它基本上是数据库中的clients表并添加一个新列。这可能吗?

我不允许编辑这些文件,因为它们是Identityserver4 dll的一部分。我能想到的唯一一件事就是创建我自己的数据库上下文并复制IdentityServer的功能,但这只是像kill一样,我不确定IdentityServer是否能够从新表中读取。

我想要添加到Client表的相关列。是识别正在使用客户端的第三方开发人员的应用ID。我们需要能够在他们的客户或他们正在做的事情存在问题时与他们联系。在最坏的情况下,禁止开发人员表现不佳。

1 个答案:

答案 0 :(得分:3)

Client类有一个Properties字典,允许您添加客户特定值。

来自文档 - http://docs.identityserver.io/en/release/reference/client.html

  

属性 - 用于保存任何自定义客户端特定值的字典   需要的。