IdentityServer4 ConfigurationDbContext未加载客户端机密

时间:2018-06-18 13:31:22

标签: entity-framework identityserver4 eager-loading

我想在我使用EntityFramework的IdentityServer项目中的MVC应用程序的仅管理页面中显示客户端及其秘密列表。

我目前在我的控制器中引用了来自依赖注入的ConfigurationDbContext,并且可以访问客户端详细信息。但是,从上下文返回的每个客户端的ClientSecrets属性没有加载机密,并设置为null。如何强制上下文加载存储在另一个表中的ClientSecrets?我应该采取不同的方式吗?

1 个答案:

答案 0 :(得分:0)

由于实体框架将客户机密保存在单独的表中,因此您必须使用实体框架的扩展方法-包含

public class ApplicatonsService : IApplicationsService
{
    private readonly ConfigurationDbContext is4Context;

    public ApplicatonsService(ConfigurationDbContext is4Context)
    {
        this.is4Context = is4Context;
    }

    public Task<List<Client>> GetApplicationsAsync()
    {
        return Task.FromResult(is4Context.Clients
                .Include(c => c.ClientSecrets)
                .Select(c => c.ToModel()).ToList());
    }
    ...

}