2016-08-23 6 views
1

Ich habe meine Datenbank mit MVC asp.net Identity-Datenbank zusammengeführt und ich möchte einen neuen Benutzer mit ASP.net-Identität von anderen Controller erstellen, aber ich konnte den Benutzer nicht sogar meinen Code ohne Fehler hinzufügen, das ist der Code:Wie erstelle ich eine neue Benutzeridentität außerhalb des Account Controllers?

[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

Sie sollten die 'ApplicationUserManager' erreichen können .... wenn Sie verschiedene Namensräume zwischen den Controllern haben – Hackerman

Antwort

0
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); 
Verwandte Themen