C# 无法解析类型为';Microsoft.AspNetCore.Identity.UserManager';试图激活';管理.控制器.角色控制器';

C# 无法解析类型为';Microsoft.AspNetCore.Identity.UserManager';试图激活';管理.控制器.角色控制器';,c#,asp.net-core,asp.net-core-mvc,asp.net-core-identity,C#,Asp.net Core,Asp.net Core Mvc,Asp.net Core Identity,我想创建角色并将用户分配给这些角色,我已经创建了角色,但不知道如何将用户分配给它们,我尝试在启动时将UserManager添加到服务中,但它不起作用。我有一个错误: InvalidOperationException:在尝试激活“PFE_Management.Controllers.RoleControl”时,无法解析类型为“Microsoft.AspNetCore.Identity.UserManager”“1[PFE_Management.Models.AppUser]”的服务 该控制器:

我想创建角色并将用户分配给这些角色,我已经创建了角色,但不知道如何将用户分配给它们,我尝试在启动时将UserManager添加到服务中,但它不起作用。我有一个错误:

InvalidOperationException:在尝试激活“PFE_Management.Controllers.RoleControl”时,无法解析类型为“Microsoft.AspNetCore.Identity.UserManager”“1[PFE_Management.Models.AppUser]”的服务

该控制器:

namespace PFE_Management.Controllers
{
    public class RoleController : Controller
    {
        private RoleManager<IdentityRole> roleManager;
        private UserManager<AppUser> userManager;
        public RoleController(RoleManager<IdentityRole> roleMgr, UserManager<AppUser> userMrg)
        {
            roleManager = roleMgr;
            userManager = userMrg;
        }

        //some code here
        // le code qui suive c'est ajouter ou supprimer un utilisateur pour un Role
        public async Task<IActionResult> Update(string id)
        {
            //some code here
        }
        [HttpPost]
        public async Task<IActionResult> Update(RoleModification model)
        {
            IdentityResult result;
            if (ModelState.IsValid)
            {
                foreach (string userId in model.AddIds ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);
                    if (user != null)
                    {
                        result = await userManager.AddToRoleAsync(user, model.RoleName);
                        if (!result.Succeeded)
                            Errors(result);
                    }
                }
                foreach (string userId in model.DeleteIds ?? new string[] { })
                {
                    AppUser user = await userManager.FindByIdAsync(userId);
                    if (user != null)
                    {
                        result = await userManager.RemoveFromRoleAsync(user, model.RoleName);
                        if (!result.Succeeded)
                            Errors(result);
                    }
                }
            }

            if (ModelState.IsValid)
                return RedirectToAction(nameof(Index));
            else
                return await Update(model.RoleId);
        }
    }
}
namespace PFE_Management.Controllers
{
公共类角色控制器:控制器
{
私人角色经理;

private UserManager

AddDefaultIdentity
不会将用户管理器添加到服务集合中。您需要自己添加它。例如:

services.AddDefaultIdentity<IdentityUser>(...)                
    .AddRoles<IdentityRole>()
    .AddUserManager<IdentityUser>() // <-- add this
    .AddEntityFrameworkStores<ApplicationDbContext>();
services.AddDefaultIdentity(…)
.AddRoles()

.AddUserManager()//
AddDefaultIdentity
不会将用户管理器添加到服务集合中。您需要自己添加它。例如:

services.AddDefaultIdentity<IdentityUser>(...)                
    .AddRoles<IdentityRole>()
    .AddUserManager<IdentityUser>() // <-- add this
    .AddEntityFrameworkStores<ApplicationDbContext>();
services.AddDefaultIdentity(…)
.AddRoles()

.AddUserManager()//Type IdentityUser必须从UserManager派生。
AddDefaultIdentity
已经注册了
UserManager
,因此我认为真正的问题是调用
AddDefaultIdentity
应该只使用
AppUser
而不是
IdentityUser
。Type IdentityUser必须从UserManager派生。
AddDefaultIdentity
已经注册了
UserManager
,所以我认为这里真正的问题是调用
AddDefaultIdentity
应该只使用
AppUser
而不是
IdentityUser