public IActionResult Login(LoginAndReg user) { if (TryValidateModel("logmodel")) { // If inital ModelState is valid, query for a user with provided email var userInDb = dbContext.Users.FirstOrDefault(u => u.Email == user.logmodel.Email); // If no user exists with provided email if (userInDb == null) { // Add an error to ModelState and return to View! ModelState.AddModelError("Email", "Invalid Email/Password"); return(View("index", user)); } // Initialize hasher object var hasher = new PasswordHasher <Login>(); // varify provided password against hash stored in db var result = hasher.VerifyHashedPassword(user.logmodel, userInDb.Password, user.logmodel.Password); // result can be compared to 0 for failure if (result == 0) { // handle failure (this should be similar to how "existing email" is handled) ModelState.AddModelError("Password", "Incorrect Password"); return(View("index", user)); } HttpContext.Session.SetInt32("CurrentUser", userInDb.UserId); return(RedirectToAction("DashboardView", "Wedding")); } return(View("index", user)); }
public IActionResult CheckingUser(LoginAndReg userSubmission) { if (ModelState.IsValid) { var userInDb = dbContext.Users.FirstOrDefault(u => u.Email == userSubmission.CheckUser.Email); if (userInDb == null) { ModelState.AddModelError("CheckUser.Email", "Email does not excist"); return(View("Index")); } var hasher = new PasswordHasher <Login>(); var result = hasher.VerifyHashedPassword(userSubmission.CheckUser, userInDb.Password, userSubmission.CheckUser.Password); if (result == 0) { ModelState.AddModelError("CheckUser.Password", "Wrong password"); return(View("Index")); } HttpContext.Session.SetInt32("InSession", userInDb.UserId); return(RedirectToAction("Dashboard")); } return(View("Index")); }
public IActionResult Register(LoginAndReg Register) { if (TryValidateModel("regmodel")) { if (dbContext.Users.Any(u => u.Email == Register.regmodel.Email)) { ModelState.AddModelError("Email", "Email already in use!"); return(View("index", Register)); } PasswordHasher <User> hasher = new PasswordHasher <User>(); User newUser = new User { FirstName = Register.regmodel.FirstName, LastName = Register.regmodel.LastName, Email = Register.regmodel.Email, Password = hasher.HashPassword(Register.regmodel, Register.regmodel.Password) }; dbContext.Add(newUser); dbContext.SaveChanges(); HttpContext.Session.SetInt32("CurrentUser", Register.regmodel.UserId); return(RedirectToAction("DashboardView", "Wedding")); } return(View("Index", Register)); }
public IActionResult Register(LoginAndReg createUser) { if (ModelState.IsValid) { if (dbContext.Users.Any(u => u.Email == createUser.NewUser.Email)) { ModelState.AddModelError("NewUser.Email", "Email is already in use"); return(View("Index")); } PasswordHasher <User> Hasher = new PasswordHasher <User>(); createUser.NewUser.Password = Hasher.HashPassword(createUser.NewUser, createUser.NewUser.Password); dbContext.Add(createUser.NewUser); dbContext.SaveChanges(); HttpContext.Session.SetInt32("InSession", createUser.NewUser.UserId); return(RedirectToAction("Dashboard")); } return(View("Index")); }