public IActionResult Login(LoginUser FromForm) { Login_Register_wrapper wrapper = new Login_Register_wrapper(); if (ModelState.IsValid) { // If inital ModelState is valid, query for a user with provided email var userInDb = _context.Users.FirstOrDefault(u => u.Email == FromForm.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"); return(View("Index", wrapper)); } // Initialize hasher object var hasher = new PasswordHasher <LoginUser>(); // verify provided password against hash stored in db var result = hasher.VerifyHashedPassword(FromForm, userInDb.Password, FromForm.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", "Invalid Password"); return(View("Index", wrapper)); } HttpContext.Session.SetInt32("active_user", userInDb.UserId); return(RedirectToAction("Dashboard")); } return(RedirectToAction("Index", wrapper)); }
public IActionResult Process_Register(User FromForm) { if (ModelState.IsValid) { PasswordHasher <User> Hasher = new PasswordHasher <User>(); FromForm.Password = Hasher.HashPassword(FromForm, FromForm.Password); _context.Add(FromForm); _context.SaveChanges(); var user = _context.Users.FirstOrDefault(u => u.Email == FromForm.Email); HttpContext.Session.SetInt32("active_user", user.UserId); return(RedirectToAction("Dashboard")); } Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); }
public IActionResult Process_Login(Login log) { if (ModelState.IsValid) { // If inital ModelState is valid, query for a user with provided email var userInDb = dbContext.Useres.FirstOrDefault(u => u.Email == log.logEmail); // If no user exists with provided email if (userInDb == null) { // Add an error to ModelState and return to View! ModelState.AddModelError("logEmail", "Invalid Email/Password"); Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); } else { // Initialize hasher object var hasher = new PasswordHasher <Login>(); // varify provided password against hash stored in db var result = hasher.VerifyHashedPassword(log, userInDb.Password, log.logPassword); // 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("logPassword", "Invalid Email/Password"); Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); } else { HttpContext.Session.SetString("Name", userInDb.Name); HttpContext.Session.SetInt32("id", userInDb.UserId); return(RedirectToAction("Dashboard")); } } } else { Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); } }
public IActionResult Process_Register(User reg) { // Check initial ModelState if (ModelState.IsValid) { // If a User exists with provided email if (dbContext.Useres.Any(u => u.Email == reg.Email)) { // Manually add a ModelState error to the Email field, with provided // error message ModelState.AddModelError("Email", "Email already exist!"); // You may consider returning to the View at this point Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); } else { HttpContext.Session.SetString("Name", reg.Name); ////// PasswordHasher <User> Hasher = new PasswordHasher <User>(); reg.Password = Hasher.HashPassword(reg, reg.Password); ////// dbContext.Add(reg); dbContext.SaveChanges(); User newuser = dbContext.Useres .FirstOrDefault(u => u.Email == reg.Email); HttpContext.Session.SetInt32("id", newuser.UserId); return(RedirectToAction("Dashboard")); } } else { Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); } // other code }
public IActionResult Index() { Login_Register_wrapper wrapper = new Login_Register_wrapper(); return(View("Index", wrapper)); }