Exemple #1
0
        public IActionResult Register(LogRegViewModel model)
        {
            User newUser = model.RegUser;

            if (ModelState.IsValid)
            {
                // we want to ensure email is unique to db
                bool notUnique = dbContext.Users.Any(a => a.Email == newUser.Email);
                if (notUnique)
                {
                    // we have an error!
                    ModelState.AddModelError("Email", "Email is in use");
                    return(View("Index"));
                }
                // We have to hash password first!
                PasswordHasher <User> hasher = new PasswordHasher <User>();
                string hash = hasher.HashPassword(newUser, newUser.Password);
                newUser.Password = hash;

                // We are ready to add user to db
                dbContext.Users.Add(newUser);
                dbContext.SaveChanges();

                SessionUser = newUser.UserId;
                return(RedirectToAction("Show", new { id = newUser.UserId }));
            }
            return(View("Index"));
        }
Exemple #2
0
        public IActionResult Login(LogRegViewModel model)
        {
            LogUser user = model.LogUser;

            if (ModelState.IsValid)
            {
                // check if email exists in db (grab a user)
                User check = dbContext.Users.FirstOrDefault(u => u.Email == user.LogEmail);
                // if check is null, no email exists
                if (check == null)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Invalid Email/Password");
                    return(View("Index"));
                }

                // check.Password needs to match user.Password
                PasswordHasher <LogUser> hasher = new PasswordHasher <LogUser>();
                var result = hasher.VerifyHashedPassword(user, check.Password, user.LogPassword);
                if (result == 0)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Invalid Email/Password");
                    return(View("Index"));
                }

                SessionUser = check.UserId;
                return(RedirectToAction("Index", "Posts"));
                // return Redirect("/");
                // return RedirectToAction("Show", new {id=check.UserId});
            }
            return(View("Index"));
        }
        public IActionResult CreateUserAction(LogRegViewModel sumbittedUser)
        {
            if (ModelState.IsValid)
            {
                if (_context.users.Any(p => p.email == sumbittedUser.user.email))
                {
                    TempData["Error"] = "That email is already registered, please sign in";
                    return(View("LogReg"));
                }
                if (sumbittedUser.user.password != sumbittedUser.user.confirm_pw)
                {
                    TempData["Error"] = "Passwords don't match";
                    return(View("LogReg"));
                }
                PasswordHasher <User> Hasher = new PasswordHasher <User>();
                sumbittedUser.user.password = Hasher.HashPassword(sumbittedUser.user, sumbittedUser.user.password);

                _context.users.Add(sumbittedUser.user);
                _context.SaveChanges();

                User returnedUser = _context.users
                                    .Where(p => p.email == sumbittedUser.user.email)
                                    .FirstOrDefault();

                HttpContext.Session.SetInt32("loggedUser", returnedUser.user_id);
                return(RedirectToAction("SelectLoad", "Load"));
            }
            return(View("LogReg"));
        }
        public IActionResult LoginAction(LogRegViewModel sumbittedUser)
        {
            User returnUser = _context.users
                              .Where(p => p.email == sumbittedUser.loginUser.email)
                              .FirstOrDefault();

            if (ModelState.IsValid)
            {
                if (returnUser == null)
                {
                    TempData["ErrorLogin"] = "******";
                    return(View("LogReg"));
                }

                var Hasher = new PasswordHasher <User>();
                if (0 != Hasher.VerifyHashedPassword(returnUser, returnUser.password, sumbittedUser.loginUser.password))
                {
                    HttpContext.Session.SetInt32("loggedUser", returnUser.user_id);
                    return(RedirectToAction("SelectLoad", "Load"));
                }
            }
            if (sumbittedUser.loginUser.email != null)
            {
                TempData["ErrorLogin"] = "******";
            }
            return(View("LogReg"));
        }
Exemple #5
0
        public IActionResult Register(LogRegViewModel model)
        {
            //Keep track of the user in the model.
            User newUser = model.RegUser;

            //Check to see if the form is valid.
            if (ModelState.IsValid)
            {
                //Query database to see if user's email already exists in database.
                bool isUnique = dbContext.Users.Any(user => user.Email == newUser.Email);

                //If a user is found, display an error.
                if (!isUnique)
                {
                    ModelState.AddModelError("Email", "Email already in use.");
                    return(View("Index"));
                }

                //Hash password before storing it in the database.
                PasswordHasher <User> passHasher = new PasswordHasher <User>();
                string hashedPassword            = passHasher.HashPassword(newUser, newUser.Password);
                newUser.Password = hashedPassword;

                //Add User to database
                dbContext.Users.Add(newUser);
                dbContext.SaveChanges();

                var latestUserId = dbContext.Users.Last().UserId;
                HttpContext.Session.SetInt32("UserId", latestUserId);

                return(RedirectToAction("Index", "Posts"));
            }
            return(View("Index"));
        }
Exemple #6
0
        public IActionResult Login(LogRegViewModel model)
        {
            LogUser user = model.LogUser;

            //Check to see if the form is valid.
            if (ModelState.IsValid)
            {
                //Query database to see if user's email already exists in database.
                User foundUser = dbContext.Users.FirstOrDefault(usr => usr.Email == user.LogEmail);
                // if foundUser is null, no user with that email exists
                if (foundUser == null)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Incorrect Email or Password");
                    return(View("Index"));
                }

                // foundUser.Password needs to match foundUser.Password
                PasswordHasher <LogUser> hasher = new PasswordHasher <LogUser>();
                var result = hasher.VerifyHashedPassword(user, foundUser.Password, user.LogPassword);
                if (result == 0)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Incorrect Email or Password.");
                    return(View("Index"));
                }

                var currentUserId = dbContext.Users.Last().UserId;
                HttpContext.Session.SetInt32("UserId", currentUserId);

                return(RedirectToAction("Index", "Posts"));
            }
            return(View("Index"));
        }
Exemple #7
0
        public IActionResult Login(LogRegViewModel model)
        {
            LogUser user = model.LogUser;

            if (ModelState.IsValid)
            {
                // check if email exists in db (grab a user)
                User check = dbContext.Users.FirstOrDefault(u => u.Email == user.LogEmail);
                // if check is null, no email exists
                if (check == null)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Invalid Email/Password");
                    return(View("Index"));
                }

                // check.Password needs to match user.Password
                PasswordHasher <LogUser> hasher = new PasswordHasher <LogUser>();
                var result = hasher.VerifyHashedPassword(user, check.Password, user.LogPassword);
                if (result == 0)
                {
                    ModelState.AddModelError("LogUser.LogEmail", "Invalid Email/Password");
                    return(View("Index"));
                }
                // WE ARE OK TO SET USER IN SESSION
                long MAX_LONG = Int64.MaxValue;
                HttpContext.Session.SetInt32("long", (int)MAX_LONG);

                HttpContext.Session.SetInt32("UserId", check.UserId);
                return(RedirectToAction("Index", "Posts"));
            }
            return(View("Index"));
        }
        public IActionResult LoginAction(LogRegViewModel submittedUser)
        {
            if (ModelState.IsValid)
            {
                User returnedUser = _context.users.Where(p => p.email == submittedUser.loginUser.email).FirstOrDefault();
                if (returnedUser == null)
                {
                    TempData["LogginError"] = "Email not yet registered";
                    return(View("Index"));
                }

                var Hasher = new PasswordHasher <User>();
                if (0 != Hasher.VerifyHashedPassword(returnedUser, returnedUser.password, submittedUser.loginUser.password))
                {
                    HttpContext.Session.SetInt32("loggedUser", returnedUser.user_id);
                    return(RedirectToAction("HomePage"));
                }
                else
                {
                    TempData["LogginError"] = "Email/Password incorrect";
                    return(View("Index"));
                }
            }
            return(View("Index"));
        }
 public IActionResult ProcessLogin(LogRegViewModel LoggingUser)
 {
     if (ModelState.IsValid)
     {
         User UserInDb    = dbContext.Users.FirstOrDefault(u => u.Email == LoggingUser.LoginUser.LoginEmail);
         var  LoginHasher = new PasswordHasher <LoginUser>();
         if (UserInDb == null)
         {
             // if there is no user provided then go nowhere
             ModelState.AddModelError("LoginUser.LoginEmail", "Email or Password is Invalid!");
             return(View("RegLog", LoggingUser));
         }
         else if (LoginHasher.VerifyHashedPassword(LoggingUser.LoginUser, UserInDb.Password, LoggingUser.LoginUser.LoginPassword) == 0)
         {
             ModelState.AddModelError("LoginUser.LoginEmail", "Email or Password is Invalid!");
             return(View("RegLog", LoggingUser));
         }
         else
         {
             // Show this and take the problem user back to RegLog
             HttpContext.Session.SetInt32("userid", UserInDb.UserId);
             return(RedirectToAction("Dashboard", "Wedding"));
         }
     }
     return(View("RegLog"));
 }
        public async Task <ActionResult> Login(LogRegViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Logins.Email, model.Logins.Password, model.Logins.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                return(RedirectToAction("About", "Home"));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = "#", RememberMe = model.Logins.RememberMe }));

            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
 public LoginPage()
 {
     InitializeComponent();
     viewModel             = new LogRegViewModel();
     ErrorLabel.IsVisible  = false;
     loginButton.IsEnabled = false;
     tmpEmail = tmpPassword = "";
 }
Exemple #12
0
        public RegisterPage()
        {
            InitializeComponent();
            BindingContext = viewModel = LoginPage.viewModel;

            FailLabel.IsVisible      = false;
            RegisterButton.IsEnabled = false;
            Email.Text    = viewModel.EmailAddress;
            Password.Text = viewModel.Password;
        }
        // LogRegViewModel comes from the Models LogRegViewModel.cs file name
        // NewUser is one instance of LogRegViewModel. This makes a new user
        public IActionResult ProcessRegistration(LogRegViewModel NewUser)
        {
            if (ModelState.IsValid)
            {
                // RegisterUser comes from LogRegViewModel. Email comes from the .cshtml file in RegLog
                // The if statement down below checks that the Email provided is unique, if not then return an error and redirect to
                if (dbContext.Users.Any(u => u.Email == NewUser.RegisterUser.Email))
                {
                    ModelState.AddModelError("RegisterUser.Email", "Email already in use!");
                    return(View("RegLog"));
                }
                // the next two lines hash the new users Password
                var Hasher = new PasswordHasher <User>();
                NewUser.RegisterUser.Password = Hasher.HashPassword(NewUser.RegisterUser, NewUser.RegisterUser.Password);
                dbContext.Users.Add(NewUser.RegisterUser);
                dbContext.SaveChanges();

                // Here I set "userid" as the id of the user registering
                HttpContext.Session.SetInt32("userid", NewUser.RegisterUser.UserId);
                // return RedirectToAction("Dashboard");
                return(RedirectToAction("Dashboard", "Wedding"));
            }
            return(View("RegLog", NewUser));
        }
        public async Task <ActionResult> Register(string type)
        {
            if (ModelState.IsValid)
            {
                switch (Request["Type"])
                {
                case "Questions":
                    if (Request["ActivitiesYes"] == "false" && Request["ActivitiesNo"] == "false" ||
                        Request["InsuranceYes"] == "false" && Request["InsuranceNo"] == "false" ||
                        Request["CompanyYes"] == "false" && Request["CompanyNo"] == "false" ||
                        Request["EmployeeYes"] == "false" && Request["EmployeeNo"] == "false" ||
                        Request["ExperienceYes"] == "false" && Request["ExperienceNo"] == "false" ||
                        Request["BaseYes"] == "false" && Request["BaseNo"] == "false")
                    {
                        ModelState.AddModelError("", "Не все поля заполнены");
                        return(View());
                    }
                    if (Request["ActivitiesYes"] == "true,false" && Request["ActivitiesNo"] == "true,false" ||
                        Request["InsuranceYes"] == "true,false" && Request["InsuranceNo"] == "true,false" ||
                        Request["CompanyYes"] == "true,false" && Request["CompanyNo"] == "true,false" ||
                        Request["EmployeeYes"] == "true,false" && Request["EmployeeNo"] == "true,false" ||
                        Request["ExperienceYes"] == "true,false" && Request["ExperienceNo"] == "true,false" ||
                        Request["BaseYes"] == "true,false" && Request["BaseNo"] == "true,false")
                    {
                        ModelState.AddModelError("", "Нельзя выбирать оба поля в одном вопросе");
                        return(View());
                    }
                    if (Request["ActivitiesYes"] == "true,false" && Request["InsuranceNo"] == "true,false" && Request["CompanyNo"] == "true,false" &&
                        Request["EmployeeNo"] == "true,false" && Request["ExperienceYes"] == "true,false" && Request["BaseYes"] == "true,false")
                    {
                        ViewBag.Type = "RegisterOGRN";
                        return(View());
                    }
                    ViewBag.Type = "NoRegistration";
                    return(View());

                case "OGRN":
                    string          ogrn      = Request["party"];
                    var             sug       = DadataParty(ogrn);
                    string          ogrnParty = sug.data.ogrn;
                    LogRegViewModel reg       = new LogRegViewModel();
                    if (ogrn == ogrnParty)
                    {
                        using (ApplicationDbContext db = new ApplicationDbContext())
                        {
                            if (db.Users.Any(t => t.OGRN == ogrn))
                            {
                                ViewBag.Type = "CompanyRegistered";
                                ViewBag.OGRN = ogrn;
                                return(View());
                            }
                            else
                            {
                                reg.Registers.OGRN            = ogrn;
                                reg.Registers.CompanyName     = sug.data.name.@short;
                                reg.Registers.FullCompanyName = sug.data.name.short_with_opf;
                                reg.Registers.OPF             = sug.data.opf.@short;
                                var city = DadataAddress(sug.data.address.value);
                                reg.Registers.City = city.data.city;
                                ViewBag.Type       = "RegisterUser";
                                return(View(reg));
                            }
                        }
                    }
                    else
                    {
                        return(View());
                    }

                case "User":
                    string regOGRN    = Request["Registers.OGRN"];
                    var    suggestion = DadataParty(regOGRN);
                    string password   = Membership.GeneratePassword(12, 1);
                    var    user       = new ApplicationUser {
                        UserName        = Request["Registers.Email"],
                        CompanyType     = "Организация",
                        Email           = Request["Registers.Email"],
                        OGRN            = regOGRN,
                        City            = Request["Registers.City"],
                        CompanyName     = Request["Registers.CompanyName"],
                        FullCompanyName = suggestion.value,
                        OPF             = Request["Registers.OPF"],
                        ContactFIO      = Request["Registers.ContactFIO"],
                        PhoneNumber     = Request["Registers.PhoneNumber"],
                        PhoneNumberOne  = Request["Registers.PhoneNumberOne"],
                        PhoneNumberTwo  = Request["Registers.PhoneNumberTwo"],
                        EmailEmployee   = Request["Registers.EmailEmployee"],
                        WebSite         = Request["Registers.WebSite"],
                        INN             = suggestion.data.inn,
                        KPP             = suggestion.data.kpp,
                        DirectorFIO     = suggestion.data.management.name,
                        DirectorPost    = suggestion.data.management.post,
                        LawAddress      = suggestion.data.address.value
                    };
                    var result = await UserManager.CreateAsync(user, password);

                    if (result.Succeeded)
                    {
                        await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                        SendEmailAsync(user.Email, "Регистрация", "Спасибо за регистрацию!<br> Ваш Логин: " + user.Email + "<br> Ваш пароль: " + password);
                        ViewBag.Type = "RegisterSuccess";
                        return(View());
                    }
                    AddErrors(result);
                    return(View());

                case "Branch":
                    ViewBag.OGRN = Request["OGRN"];
                    ViewBag.Type = "RegisterBranch";
                    return(View());

                case "RegisterBranch":
                    string branchOGRN     = Request["OGRN"];
                    var    sugbranch      = DadataParty(branchOGRN);
                    string passwordBranch = Membership.GeneratePassword(12, 1);
                    var    userBranch     = new ApplicationUser
                    {
                        UserName        = Request["Registers.Email"],
                        CompanyType     = Request["Registers.CompanyType"],
                        Email           = Request["Registers.Email"],
                        OGRN            = branchOGRN,
                        City            = Request["Registers.City"],
                        CompanyName     = sugbranch.data.name.@short,
                        FullCompanyName = sugbranch.data.name.short_with_opf,
                        OPF             = sugbranch.data.opf.@short,
                        ContactFIO      = Request["Registers.ContactFIO"],
                        PhoneNumber     = Request["Registers.PhoneNumber"],
                        PhoneNumberOne  = Request["Registers.PhoneNumberOne"],
                        PhoneNumberTwo  = Request["Registers.PhoneNumberTwo"],
                        EmailEmployee   = Request["Registers.EmailEmployee"],
                        WebSite         = Request["Registers.WebSite"],
                        INN             = sugbranch.data.inn,
                        KPP             = sugbranch.data.kpp,
                        DirectorFIO     = sugbranch.data.management.name,
                        DirectorPost    = sugbranch.data.management.post,
                        LawAddress      = sugbranch.data.address.value
                    };
                    var resultBranch = await UserManager.CreateAsync(userBranch, passwordBranch);

                    if (resultBranch.Succeeded)
                    {
                        await SignInManager.SignInAsync(userBranch, isPersistent : false, rememberBrowser : false);

                        SendEmailAsync(userBranch.Email, "Регистрация", "Спасибо за регистрацию!<br> Ваш Логин: " + userBranch.Email + "<br> Ваш пароль: " + passwordBranch);
                        ViewBag.Type = "RegisterSuccess";
                        return(View());
                    }
                    AddErrors(resultBranch);
                    return(View());

                default:
                    return(RedirectToAction("Http404", "Error"));
                }
            }

            // If we got this far, something failed, redisplay form
            return(View());
        }