public ActionResult Create(User user) { // don't user default user validations // since we don't need password confirmation ModelState.Clear(); if (string.IsNullOrEmpty(user.Name)) { ModelState.AddModelError("Username", "Please enter your username."); } if (string.IsNullOrEmpty(user.Password)) { ModelState.AddModelError("Password", "Please enter your password."); } var userByName = DataContext.Users.Where(u => u.Name == user.Name).FirstOrDefault(); if (userByName == null || !user.Authenticate(user.Password)) { ModelState.AddModelError("Username", "Invalid username or password"); } if (ModelState.IsValid) { CurrentUser = userByName; var message = string.Format("Successfully signed in as {0}", userByName.Name); return RedirectToAction("Index", "Movies").WithFlash(new { notice = message }); } return View(user); }
public ActionResult Create(User user) { if(DataContext.Users.Where(u => u.Name == user.Name).Any()) { ModelState.AddModelError("Name", "A user with that name already exists."); } if (user.Password != user.PasswordConfirmation) { ModelState.AddModelError("Password", "Password must match confirmation."); } if (ModelState.IsValid) { DataContext.Users.Save(user); CurrentUser = user; return RedirectToAction("Index", "Movies"); } return View(user); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { // Create a local login before signing in the user //var user = new ApplicationUser() { UserName = model.UserName }; var user = new User(model.UserName); var result = await IdentityManager.Users.CreateLocalUserAsync(user, model.Password); if (result.Success) { await IdentityManager.Authentication.SignInAsync(AuthenticationManager, user.Id, isPersistent: false); return RedirectToAction("Index", "Home"); } else { AddErrors(result); } } // If we got this far, something failed, redisplay form return View(model); }