public async Task <ActionResult> RegisterUser(SimpleUserVM vm) { var manager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new ApplicationDbContext())); var user = new ApplicationUser { Email = vm.email, UserName = vm.email }; var result = await manager.CreateAsync(user); if (!result.Succeeded) { return(new HttpStatusCodeResult(400, string.Join(", ", result.Errors.ToArray()))); } result = await manager.AddPasswordAsync(user.Id, vm.password); if (!result.Succeeded) { using (var ctx = new ApplicationDbContext()) { ctx.Users.Remove(user); await ctx.SaveChangesAsync(); } return(new HttpStatusCodeResult(400, string.Join(", ", result.Errors.ToArray()))); } return(Json(true)); }
public async Task <ActionResult> LoginUser(SimpleUserVM vm) { using (var ctx = new ApplicationDbContext()) { var manager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(ctx)); var user = await manager.FindByEmailAsync(vm.email); if (user == null) { return(new HttpStatusCodeResult(400, "No user found with the given credentials")); } try { await HttpContext.GetOwinContext().Get <ApplicationSignInManager>().PasswordSignInAsync(vm.email, vm.password, false, false); } catch (Exception e) { Console.WriteLine(e); return(new HttpStatusCodeResult(400)); } HttpContext.User = new GenericPrincipal(new GenericIdentity(user.Email), roles: new string[] { }); return(Json(new SimpleUserVM { email = user.Email, id = user.Id })); } }