public IActionResult Register(LoginRegViewModel modelData)
        {
            User user = modelData.RegUser;

            if (ModelState.IsValid)
            {
                if (dbContext.users.Any(u => u.Email == user.Email))
                {
                    ModelState.AddModelError("RegUser.Email", "Email is already in use");
                    return(View("Index"));
                }

                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                user.Password = Hasher.HashPassword(user, user.Password);

                dbContext.Add(user);
                dbContext.SaveChanges();

                var GetNewUser = dbContext.users.FirstOrDefault(u => u.UserId == user.UserId);
                HttpContext.Session.SetInt32("UserId", GetNewUser.UserId);

                return(RedirectToAction("Dashboard"));
            }
            return(View("Index"));
        }
        public IActionResult LoginUser(LoginRegViewModel modelData)
        {
            LoginUser user = modelData.LogUser;

            if (ModelState.IsValid)
            {
                var GetUser = dbContext.users.FirstOrDefault(u => u.Email == user.Email);
                if (GetUser == null)
                {
                    ModelState.AddModelError("LogUser.Email", "Invalid email");
                    return(View("Index"));
                }
                var hasher = new PasswordHasher <LoginUser>();
                var result = hasher.VerifyHashedPassword(user, GetUser.Password, user.Password);
                if (result == 0)
                {
                    ModelState.AddModelError("LogUser.Password", "Password is incorrect");
                    return(View("Index"));
                }

                HttpContext.Session.SetInt32("UserId", GetUser.UserId);
                return(RedirectToAction("Dashboard"));
            }
            return(View("Index"));
        }
Exemplo n.º 3
0
        public IActionResult Login(LoginRegViewModel modelData)
        {
            LoginReg userLogin = modelData.existingUser;

            if (ModelState.IsValid)
            {
                User userInDB = dbContext.users.FirstOrDefault(u => u.Email == userLogin.Email);
                if (userInDB == null)
                {
                    ModelState.AddModelError("Email", "Invalid email or password");
                    return(View("Index"));
                }
                else
                {
                    var hasher = new PasswordHasher <LoginReg>();
                    var result = hasher.VerifyHashedPassword(userLogin, userInDB.Password, userLogin.Password);
                    if (result == 0)
                    {
                        ModelState.AddModelError("Password", "Invalid email or password");
                        return(View("Index"));
                    }
                    if (HttpContext.Session.GetInt32("UserId") == null)
                    {
                        HttpContext.Session.SetInt32("UserId", userInDB.UserId);
                    }
                    return(RedirectToAction("Dashboard"));
                }
            }
            else
            {
                return(View("Index"));
            }
        }
Exemplo n.º 4
0
        public IActionResult Register(LoginRegViewModel modelData)
        {
            User creatingUser = modelData.newUser;

            if (ModelState.IsValid)
            {
                if (dbContext.users.Any(u => u.Email == creatingUser.Email))
                {
                    ModelState.AddModelError("Email", "Email is already in use!");
                    return(View("Index"));
                }
                else
                {
                    PasswordHasher <User> Hasher = new PasswordHasher <User>();
                    creatingUser.Password = Hasher.HashPassword(creatingUser, creatingUser.Password);
                    dbContext.Add(creatingUser);
                    dbContext.SaveChanges();
                    if (HttpContext.Session.GetInt32("UserId") == null)
                    {
                        HttpContext.Session.SetInt32("UserId", creatingUser.UserId);
                    }
                    return(RedirectToAction("Dashboard", new { userID = creatingUser.UserId }));
                }
            }
            else
            {
                System.Console.WriteLine("*******************");
                System.Console.WriteLine("REGISTRATION NOT WORKING!!!!");
                System.Console.WriteLine(creatingUser.FirstName);
                System.Console.WriteLine(creatingUser.LastName);
                System.Console.WriteLine(creatingUser.Email);
                System.Console.WriteLine("*******************");
                return(View("Index"));
            }
        }
Exemplo n.º 5
0
 public IActionResult Register(LoginRegViewModel registeringUser)
 {
     if (TryValidateModel(registeringUser.RegisterVM))
     {
         //If the model validation is sucessful check to see if the email
         //is already in the database. "SingleOrDefault" returns null if it can't find it
         User existingUser = _context.User.SingleOrDefault(user => user.Email == registeringUser.RegisterVM.Email.ToLower());
         if (existingUser == null)
         {
             //Create a new User object to be insterted into the database
             User newUser = new User
             {
                 FirstName  = registeringUser.RegisterVM.FirstName,
                 LastName   = registeringUser.RegisterVM.LastName,
                 Email      = registeringUser.RegisterVM.Email.ToLower(),
                 Created_At = DateTime.Now,
                 Updated_At = DateTime.Now
             };
             //Create a password hasher object and insert the user's hashed password
             PasswordHasher <User> hasher = new PasswordHasher <User>();
             newUser.Password = hasher.HashPassword(newUser, registeringUser.RegisterVM.RegPassword);
             //Try and insert the new user into the database
             try
             {
                 _context.User.Add(newUser);
                 _context.SaveChanges();
                 HttpContext.Session.SetString("UserName", newUser.FirstName);
                 HttpContext.Session.SetInt32("UserId", newUser.UserId);
                 return(RedirectToAction("Dashboard", "Home"));
             }
             catch (System.Exception)
             {
                 //There was an error with inserting into the database
                 TempData["errors"] = true;
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             //Input email is already in the database
             string key          = "Email";
             string errorMessage = "This email address already exists. Please select another or login.";
             ModelState.AddModelError(key, errorMessage);
             TempData["errors"] = true;
             return(RedirectToAction("Index"));
         }
     }
     else
     {
         //The model could not be validated. Errors in form
         TempData["errors"] = true;
         return(RedirectToAction("Index"));
     }
 }
Exemplo n.º 6
0
        public IActionResult Login(LoginRegViewModel logUser)
        {
            Users UserLoginIn = _userFactory.GetUserByEmail(logUser.loginVM.loginEmail);

            if (Current_User != null)
            {
                //hash password
                PasswordHasher <Users> Hasher = new PasswordHasher <Users>();
                if (0 != Hasher.VerifyHashedPassword(UserLoginIn, UserLoginIn.Password, logUser.loginVM.loginPassword))
                {
                    //Handle success
                    HttpContext.Session.SetString(Current_User, UserLoginIn.FirstName);
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 7
0
        public IActionResult Register(LoginRegViewModel registerUser)
        {
            RegisterViewModel registerVM = registerUser.registerVM;

            if (TryValidateModel(registerVM))
            {
                if (registerVM.RegisterPassword == registerVM.ConfirmPassword) //if the two passwords match
                {
                    PasswordHasher <RegisterViewModel> Hasher = new PasswordHasher <RegisterViewModel>();
                    registerVM.RegisterPassword = Hasher.HashPassword(registerVM, registerVM.RegisterPassword);
                    _userFactory.Register(registerUser.registerVM);
                    HttpContext.Session.SetString(Current_User, registerUser.registerVM.FirstName);
                }
            }
            return(RedirectToAction("Index"));
        }
Exemplo n.º 8
0
        [Route("register")]  //or create user route
        public IActionResult Register(LoginRegViewModel regVM)
        {
            RegisterViewModel registerVM = regVM.registerVM;

            if (TryValidateModel(registerVM))
            {
                if (registerVM.password == registerVM.confirm_password)
                {
                    PasswordHasher <RegisterViewModel> Hasher = new PasswordHasher <RegisterViewModel>();
                    registerVM.password = Hasher.HashPassword(registerVM, registerVM.password);
                    _userFactory.Register(regVM.registerVM);
                    HttpContext.Session.SetString(LOGGED_IN_USER, regVM.registerVM.first_name);
                }
            }

            return(RedirectToAction("Success"));
        }
Exemplo n.º 9
0
 public IActionResult Login(LoginRegViewModel loggingInUser)
 {
     if (TryValidateModel(loggingInUser.LoginVM))
     {
         //If the Model is validation is sucessful try finding the user
         User existingUser = _context.User.SingleOrDefault(user => user.Email == loggingInUser.LoginVM.LoginEmail.ToLower());
         if (existingUser != null)
         {
             //Create a password hasher object and compare the user's hashed passwords
             PasswordHasher <User> hasher = new PasswordHasher <User>();
             //Match the input password with our database (a match == 1, 0 == error)
             if (hasher.VerifyHashedPassword(existingUser, existingUser.Password, loggingInUser.LoginVM.LoginPassword) != 0)
             {
                 //The passwords succesfully matched
                 HttpContext.Session.SetString("UserName", existingUser.FirstName);
                 HttpContext.Session.SetInt32("UserId", existingUser.UserId);
                 return(RedirectToAction("dashboard", "Home"));
             }
             else
             {
                 //The passwords did not match
                 string key          = "LoginEmail";
                 string errorMessage = "Email address or log in did not work";
                 ModelState.AddModelError(key, errorMessage);
                 TempData["login_errors"] = true;
                 return(RedirectToAction("Index"));
             }
         }
         else
         {
             //The user couldn't be found in the database
             string key          = "LoginEmail";
             string errorMessage = "Email address or log in did not work";
             ModelState.AddModelError(key, errorMessage);
             TempData["login_errors"] = true;
             return(RedirectToAction("Index"));
         }
     }
     else
     {
         //The model could not be validated. Errors in form.
         TempData["login_errors"] = true;
         return(RedirectToAction("Index"));
     }
 }
Exemplo n.º 10
0
        public IActionResult Login(LoginRegViewModel loginVM)
        {
            User user = _userFactory.GetUserByEmail(loginVM.loginVM.loginEmail);

            if (user != null)
            {
                PasswordHasher <User> Hasher = new PasswordHasher <User>();

                if (0 != Hasher.VerifyHashedPassword(user, user.password, loginVM.loginVM.loginPassword))
                {
                    //Handle success
                    HttpContext.Session.SetString(LOGGED_IN_USER, user.first_name);
                }
            }
            ViewBag.loggedUser_name  = user.first_name;
            ViewBag.loggedUser_email = user.email;
            return(RedirectToAction("Index"));
        }
Exemplo n.º 11
0
        public IActionResult LoginUser(LoginRegViewModel model)
        {
            var user = _context.Users.SingleOrDefault(p => p.Email == model.Login.Email);

            if (ModelState.IsValid)
            {
                if (user != null)
                {
                    var Hasher = new PasswordHasher <User>();
                    var result = Hasher.VerifyHashedPassword(user, user.Password, model.Login.Password);
                    if (result != 0)
                    {
                        HttpContext.Session.SetInt32("LoggedInUser", user.Id);
                        return(RedirectToAction("Index", "Activity"));
                    }
                }
                ModelState.AddModelError("Login.Email", "User could not be logged in.");
            }
            return(View("Index"));
        }
Exemplo n.º 12
0
 public IActionResult NewUser(LoginRegViewModel model)
 {
     if (ModelState.IsValid)
     {
         User user = new User()
         {
             FirstName = model.Register.FirstName,
             LastName  = model.Register.LastName,
             Email     = model.Register.Email
         };
         PasswordHasher <User> Hasher = new PasswordHasher <User>();
         user.Password = Hasher.HashPassword(user, model.Register.Password);
         _context.Add(user);
         _context.SaveChanges();
         User currUser = _context.Users.SingleOrDefault(p => p.Email == user.Email);
         HttpContext.Session.SetInt32("LoggedInUser", currUser.Id);
         return(RedirectToAction("Index", "Activity"));
     }
     return(View("Index"));
 }