首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法解析“Duende.IdentityServer.Stores.IClientStore”类型的服务

无法解析“Duende.IdentityServer.Stores.IClientStore”类型的服务
EN

Stack Overflow用户
提问于 2022-04-04 23:56:50
回答 1查看 828关注 0票数 0

我正在将drom迁移到Duende,并使用.net 6核心项目,在builder.build()上启动时会出现以下错误。

'Duende.IdentityServer.Validation.AuthorizeRequestValidator‘:在尝试激活InvalidOperationException时,无法解析“Duende.IdentityServer.Stores.IClientStore”类型的服务

这是我的启动代码:

代码语言:javascript
复制
// add configuration mappings
builder.Services.AddOptions();
builder.Services.Configure<MaximizerConfiguration>(builder.Configuration.GetSection(MaximizerConfiguration.CONFIG_SECTION));
builder.Services.Configure<MessageEmailConfiguration>(builder.Configuration.GetSection(MessageEmailConfiguration.CONFIG_SECTION));
builder.Services.Configure<SitefinityLinksConfiguration>(builder.Configuration.GetSection(SitefinityLinksConfiguration.CONFIG_SECTION));
builder.Services.Configure<OIDCClientsConfiguration>(builder.Configuration.GetSection(OIDCClientsConfiguration.CONFIG_SECTION));

// database context with asp.net identity
builder.Services.AddDbContext<IdentityContext>(options =>
{
    options.UseSqlServer(builder.Configuration.GetConnectionString(IdentityContext.CONNECTION_NAME));

});

builder.Services.AddIdentity<User, IdentityRole>(options =>
{
    options.SignIn.RequireConfirmedEmail = true;

    options.Lockout.MaxFailedAccessAttempts = 10;
    options.Lockout.DefaultLockoutTimeSpan = new TimeSpan(0, 15, 0);

    options.Password.RequireDigit = true;
    options.Password.RequiredLength = 8;
    options.Password.RequireLowercase = true;
    options.Password.RequireUppercase = true;
    options.Password.RequireNonAlphanumeric = false;
})
    .AddEntityFrameworkStores<IdentityContext>()
    .AddUserManager<UserManager>()
    .AddDefaultTokenProviders();


builder.Services.AddMvc();


builder.Services.AddIdentityServer()
                .AddDeveloperSigningCredential()
                .AddAspNetIdentity<User>()
                .AddProfileService<ProfileManager>();

var tokenExp = double.Parse(builder.Configuration["TokenExpirationInHours"]);
builder.Services.Configure<DataProtectionTokenProviderOptions>(o => o.TokenLifespan = TimeSpan.FromHours(tokenExp));

// custom services
builder.Services.AddTransient<MessageContext>();
builder.Services.AddTransient<MaximizerContext>();
builder.Services.AddTransient<ProfileManager>();
builder.Services.AddTransient<EmailManager>();

builder.Services.AddSingleton<IConfiguration>(builder.Configuration);
// Add services to the container.
builder.Services.AddControllersWithViews();

var app = builder.Build();```
EN

回答 1

Stack Overflow用户

发布于 2022-04-06 01:58:56

我解决了问题。IClientStore是必需的,所以为了解决这个问题,我只是在启动中添加了这些行。

.AddInMemoryIdentityResources(IdentityConfiguration.GetIdentityResources()) .AddInMemoryClients(IdentityConfiguration.GetClients(builder.Configuration))

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71744940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档