【问题标题】:IdentityServer4 ConfigurationDbContext not loading client secretsIdentityServer4 ConfigurationDbContext 未加载客户端机密
【发布时间】:2018-06-18 13:31:21
【问题描述】:

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

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

【问题讨论】:

标签: entity-framework identityserver4 eager-loading


【解决方案1】:

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

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());
    }
    ...

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 1970-01-01
    相关资源
    最近更新 更多