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")); }
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")); }
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")); }
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")); }
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 = ""; }
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()); }