IUserClaimsPrincipalFactory`1未在IndentityServer实现中注册错误
即使在注册 AddDefaultIdentity 后,我也遇到异常
System.InvalidOperationException: Service type: IUserClaimsPrincipalFactory`1 not registered.
这是身份注册码:
services.AddDefaultIdentity<ApplicationUser>(options =>
{
//Disable account confirmation.
options.SignIn.RequireConfirmedAccount = false;
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddDefaultIdentity<ApplicationUser>(options =>
{
//Disable account confirmation.
options.SignIn.RequireConfirmedAccount = false;
options.SignIn.RequireConfirmedEmail = false;
options.SignIn.RequireConfirmedPhoneNumber = false;
})
.AddEntityFrameworkStores<ApplicationDbContext>();
这是 IdentityServer 代码:
var builder = services.AddIdentityServer()
.AddInMemoryApiScopes(IdentityServerConfig.ApiScopes)
.AddInMemoryIdentityResources(IdentityServerConfig.IdentityResources)
.AddInMemoryApiResources(IdentityServerConfig.ApiResources)
.AddInMemoryClients(IdentityServerConfig.Clients)
.AddAspNetIdentity<IdentityUser>();
回答
我花了几个小时来解决这个错字。
问题是我的注册错误。
我正在使用,ApplicationUser但我正在IdentityUser身份服务器中注册。
我通过ApplicationUser在AddIdentityServer()和 中设置 来解决我的问题AddDefaultIdentity()。
这是工作代码:.Net Core Identity
身份服务器4:
var builder = services.AddIdentityServer()
.AddInMemoryApiScopes(IdentityServerConfig.ApiScopes)
.AddInMemoryIdentityResources(IdentityServerConfig.IdentityResources)
.AddInMemoryApiResources(IdentityServerConfig.ApiResources)
.AddInMemoryClients(IdentityServerConfig.Clients)
.AddAspNetIdentity<ApplicationUser>();
注意使用ApplicationUser. 我在这里发布了问题,以便下次记住。
THE END
二维码