首页 > 解决方案 > 从另一个项目手动在 AspNetUser 表中添加新用户

问题描述

我使用身份模型(Identity.EntityFrameworkCore Version=3.1.3.0 )创建了Asp.Net Core 3.0 web Api项目,现在我可以使用 api 控制器登录和注册,但是我有另一个由Asp.Net MVC 5数据库优先)创建的项目在同一个数据库上连接,我需要在 MVC 项目中直接在共享数据库中添加 AspNetUsers 表中的用户,而不使用 Web Api 项目。

[HttpPost]  
[ValidateAntiForgeryToken]  
public ActionResult AddUser(UserViewModel newUser)  
{  
   if (ModelState.IsValid)  
    {
      // How to add user manually here
     _dbContext.AspNetUsers.Add(newUser);  
     _dbContext.SaveChanges();  
    }  
    return View();  
}  

标签: c#asp.net-mvcasp.net-coreasp.net-identity

解决方案


您必须对输入模型使用 [Body] 注释。并使用映射器(例如 AutoMapper)将您的 ViewModel 映射到 Db 模型。在 IApplicationUserManager 方法 CreateAsync(User user, string password) 创建用户。

var user = new User
{
     UserName = newUser.UserName,
     Email = newUser.Email
};
var result = await _userManager.CreateAsync(user, model.Password).ConfigureAwait(false);

推荐阅读