C# ASP.NET标识-使用UserManager创建用户

C# ASP.NET标识-使用UserManager创建用户,c#,asp.net-mvc,asp.net-identity,asp.net-identity-3,C#,Asp.net Mvc,Asp.net Identity,Asp.net Identity 3,我正在尝试使用ASP.NET MVC v5、Entity Framework v7和Identity v3从头构建一个简单的登录系统 我只希望用户创建一个帐户,并将该帐户保存在数据库中。这是注册后操作: [HttpPost] public async Task<IActionResult> Register (RegisterViewModel model) { try { var userStore =

我正在尝试使用ASP.NET MVC v5、Entity Framework v7和Identity v3从头构建一个简单的登录系统

我只希望用户创建一个帐户,并将该帐户保存在数据库中。这是注册后操作:

    [HttpPost]
    public async Task<IActionResult> Register (RegisterViewModel model)
    {
        try
        {
            var userStore = new UserStore<ApplicationUser>(db);
            var userManager = new UserManager<ApplicationUser>(userStore);
            var user = new ApplicationUser { UserName = model.Email };
            IdentityResult result = await userManager.CreateAsync(user, model.Password);
            return RedirectToAction(nameof(HomeController.Index), "Home");
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
            return View();
        }
    }
[HttpPost]
公共异步任务寄存器(RegisterViewModel模型)
{
尝试
{
var userStore=新的userStore(db);
var userManager=newusermanager(userStore);
var user=newapplicationuser{UserName=model.Email};
IdentityResult result=await userManager.CreateAsync(用户、模型、密码);
返回重定向到操作(nameof(HomeController.Index),“Home”);
}
捕获(例外情况除外)
{
控制台写入线(例如消息);
返回视图();
}
}
我在这里得到了
UserManager
的错误:

错误CS7036给定的参数中没有与 的必需形式参数“optionAccessor” 'UserManager.UserManager(IUserStore, IOptions,IPasswordHasher, IEnumerable>, IEnumerable>,ILookupNormalizer, 识别者描述者,IServiceProvider, ILogger>,IHttpContextAccessor)'

这意味着什么/我该如何处理


我还想知道这一点,因为当您在生成的AccountController中创建一个搭建的MVC应用程序时,UserManager从不接受任何参数(即使错误消息说它们是“必需的”形式参数),但应用程序能够注册用户

你不能从DI容器中获取usermanager吗?或者你真的在使用MVC5吗?我在使用MVC5。我对.NET还很陌生,仍在努力解决所有问题。我不知道如何使用DI容器,但我会研究一下。看看默认的项目代码,它将向您展示如何使用DI ContainerCreate idea@gabriel中的UserManager创建用户,这解决了我在这里遇到的问题。现在它与数据库的通信出现问题,但这是一个进步!