C# ASP.NET标识-使用UserManager创建用户
我正在尝试使用ASP.NET MVC v5、Entity Framework v7和Identity v3从头构建一个简单的登录系统 我只希望用户创建一个帐户,并将该帐户保存在数据库中。这是注册后操作: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 =
[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创建用户,这解决了我在这里遇到的问题。现在它与数据库的通信出现问题,但这是一个进步!