【问题标题】:Dependency injection fails for .Net Core 2.1 customized IdentityUI.Net Core 2.1 自定义 IdentityUI 的依赖注入失败
【发布时间】:2018-11-16 13:32:43
【问题描述】:

新的 .Net Core 2.1 Identity 非常混乱。

这是我的代码:

STARTUP.CS

services.AddIdentity<User, IdentityRole>(options => options.Stores.MaxLengthForKeys = 128)
        .AddEntityFrameworkStores<ApplicationDbContext>() 
        .AddDefaultUI()
        .AddDefaultTokenProviders();

数据库上下文

public class ApplicationDbContext : IdentityDbContext<User>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

但是我收到了这个错误:

InvalidOperationException:没有服务类型 'Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' 已注册。

我做错了什么?

【问题讨论】:

  • 您在 Identity Framework 中注册了 User,但在您的项目中某处有一个依赖于 UserManager&lt;IdentityUser&gt; 的类
  • @Nkosi 所以我应该更改这个用户:IdentityUser 或 IdentityDbContext?
  • 没有。找出您拥有UserManager&lt;IdentityUser&gt; 的位置并将其更新为UserManager&lt;User&gt;

标签: c# asp.net-core dependency-injection asp.net-identity


【解决方案1】:

User 已在身份框架中注册为扩展用户身份模型。

但是,异常消息暗示项目中的某处有一个依赖于 UserManager&lt;IdentityUser&gt; 的类,这将是模板的默认值。

由于默认值已扩展,因此任何对默认值UserManager&lt;IdentityUser&gt; 的引用都需要更新为UserManager&lt;User&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 2019-01-08
    • 2016-05-22
    • 1970-01-01
    • 2018-11-23
    • 2018-09-14
    • 2020-09-20
    相关资源
    最近更新 更多