Example #1
0
        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));
        }
Example #2
0
        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
                }));
            }
        }