如何从账户控制器创建新的用户身份?

问题描述:

我已经合并了我的数据库与MVC asp.net身份数据库,我想创建一个新的用户使用asp.net身份从其他控制器,但我无法成功地添加用户,即使我的代码工作没有错误这是代码:如何从账户控制器创建新的用户身份?

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Create([Bind(Include = "Id,Email,EmailConfirmed,Password,SecurityStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEndDateUtc,LockoutEnabled,AccessFailedCount,UserName")] AspNetUsers aspNetUsers) 
{ 
    if (ModelState.IsValid) 
    { 
     // ApplicationUserManager manager = new ApplicationUserManager(new UserStore<ApplicationUser>()); 

     // var manager = HttpContext.Current.GetOwinContext().GetUserManager<UserManager<User>>(); 
     var store = new UserStore<ApplicationUser>(); 
      var manager = new ApplicationUserManager(store); 
      var user = new ApplicationUser() { Email = aspNetUsers.Email, UserName = aspNetUsers.UserName }; 
     var result= manager.CreateAsync(user, aspNetUsers.PasswordHash); 
     manager.Create(user, aspNetUsers.Password); 
     // db.AspNetUsers.Add(aspNetUsers); 
     // db.SaveChanges(); 
     return RedirectToAction("Index"); 
    } 

    return View(aspNetUsers); 
} 
+0

您应该能够达到'ApplicationUserManager' ....检查,如果你有你的控制器之间不同的命名空间 – Hackerman

var store = new UserStore<ApplicationUser>(new ApplicationDbContext()); 
ApplicationUserManager _userManager = new ApplicationUserManager(store); 
var manger = _userManager ?? HttpContext.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
var user = new ApplicationUser() { Email = aspNetUsers.Email, UserName = aspNetUsers.UserName }; 
var usmanger= manger.Create(user, aspNetUsers.PasswordHash);