【问题标题】:Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager` While changing the datatype of AspNetUsers Id column to int将 AspNetUsers Id 列的数据类型更改为 int 时,无法解析类型“Microsoft.AspNetCore.Identity.RoleManager”的服务
【发布时间】:2021-06-11 05:37:06
【问题描述】:

我在管理控制器中面临无法解决类型“Microsoft.AspNetCore.Identity.RoleManager”的服务问题 这是我在管理控制器中注入 RoleManager 的方式

        private readonly RoleManager<IdentityRole> roleManager;
        private readonly UserManager<ApplicationUser> userManager;
        public AdministrationController(RoleManager<IdentityRole> roleManager,UserManager<ApplicationUser> userManager)
        {
            this.roleManager = roleManager;
            this.userManager = userManager;
        }

在我的 startup.cs 文件中,我添加了这样的身份服务

  services.AddIdentity<ApplicationUser, IdentityRole<int>>()
              .AddEntityFrameworkStores<CISContext>()
              .AddDefaultTokenProviders();

正如您在我的 startup.cs 文件中添加身份服务时看到的那样,我在 IdentityRole 类中添加了数据类型,以便将 AspNetUsers Id 列的数据类型从字符串更改为 int

请问我该如何解决这个问题?

【问题讨论】:

    标签: asp.net-core asp.net-core-identity


    【解决方案1】:

    只是一种预感,因为我还没有测试过这个并且有一段时间没有使用角色,但是您是否尝试过在注入时指定泛型类型参数?

    RoleManager&lt;IdentityRole&lt;int&gt;&gt; roleManager.

    因为我注意到您通过指定非默认 int 键类型将其添加到 startup.cs。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-20
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      相关资源
      最近更新 更多