Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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));
            }
        }
Esempio n. 4
0
        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
        }
Esempio n. 5
0
        public IActionResult Index()
        {
            Login_Register_wrapper wrapper = new Login_Register_wrapper();

            return(View("Index", wrapper));
        }