如何从账户控制器创建新的用户身份?
问题描述:
我已经合并了我的数据库与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);
}
答
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);
您应该能够达到'ApplicationUserManager' ....检查,如果你有你的控制器之间不同的命名空间 – Hackerman