首页 > 解决方案 > ASP.NET Core 依赖注入错误:尝试激活“身份用户”时无法解析“身份用户”类型的服务

问题描述

错误消息是这样的:

路径 /account/register 引发异常 System.InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.IUserStore 1[Microsoft.AspNetCore.Identity.IdentityUser]' while attempting to activate 'Microsoft.AspNetCore.Identity.UserManager1[Microsoft.AspNetCore.Identity.

我不知道是什么原因造成的。非常感谢任何帮助,谢谢!

    public class AccountController : Controller
    {
        private readonly UserManager<IdentityUser> userManager;
        private readonly SignInManager<IdentityUser> signInManager;

        public AccountController(UserManager<IdentityUser> userManager,
                                 SignInManager<IdentityUser> signInManager)
        {
            this.userManager = userManager;
            this.signInManager = signInManager;
        }

       [HttpGet]
        public IActionResult Register()
        {

            return View();
        }

        [HttpPost]
        public async Task<IActionResult> Register(RegisterViewModel model)
        {
            if(ModelState.IsValid)
            {
                var user = new IdentityUser { UserName = model.Email, Email = model.Email };
                var result = await userManager.CreateAsync(user, model.Password);

                if(result.Succeeded)
                {
                    // Persistend creates either session or permanent cookie
                    await signInManager.SignInAsync(user, isPersistent: false);
                    return RedirectToAction("index", "home");
                }

                foreach (var error in result.Errors)
                {
                    // Adding this to Modelstate goes to validation-summary in register.cshtml
                    ModelState.AddModelError("", error.Description);
                }
            }
            return View(model);
        }
    }

标签: asp.netasp.net-mvcasp.net-coredependency-injection

解决方案


好的,所以在启动类中我改变了:

services.AddIdentity<IdentityUser, IdentityRole>();

services.AddIdentity<IdentityUser, IdentityRole>().AddEntityFrameworkStores<AppDbContext>();

推荐阅读