public ActionResult ViewAuthFrom(AuthUserViewModel user) { try { if (ModelState.IsValid) { int checkLo = 0; int chekPas = 0; string md5Result = string.Empty; int fff = 0; var selectList = unitOfWork.UserRepository.Get().Select(x => x.Login).ToList(); foreach (var r in selectList) { if (r.Trim() != user.Login.Trim()) { fff++; continue; } checkLo = 1; break; } var hash = unitOfWork.UserRepository.Get().Select(x => x.Hash).ToList(); var salt = unitOfWork.UserRepository.Get().Select(x => x.Salt).ToList(); foreach (var h in hash) { foreach (var s in salt) { md5Result = GetHash(user.Password + s); if (md5Result.Trim() != h.Trim()) continue; chekPas = 1; break; } } if (checkLo == 1 && chekPas == 1) { FormsAuthentication.SetAuthCookie(user.Login.Trim(), false); UserName = user.Login.Trim(); return RedirectToAction("List", "Note"); } if (checkLo == 0 && chekPas == 1) { ModelState.AddModelError("", "Вы ввели неверный логин."); //return Redirect("Index"); } else if (checkLo == 1 && chekPas == 0) { ModelState.AddModelError("", "Вы ввели неверный пароль."); } else if (checkLo == 0 && chekPas == 0) { ModelState.AddModelError("", "Вы ввели неверный логин и пароль."); } } } catch (DataException) { ModelState.AddModelError("", "При сохранении возникла ошибка."); } return View(); }
public ActionResult Index(RegistrationUserViewModel registrationUserViewModel) { //try //{ if (ModelState.IsValid) { var lg = unitOfWork.UserRepository.Get().Select(x => x.Login).ToList(); var em = unitOfWork.UserRepository.Get().Select(x => x.Email).ToList(); int countMatchesLogin = 0; int countMatchesEmail = 0; foreach (var l in lg) { if (l.Trim() != registrationUserViewModel.Login.Trim()) continue; countMatchesLogin = 1; break; } foreach (var l in em) { if (l.Trim() != registrationUserViewModel.Email.Trim()) continue; countMatchesEmail = 1; break; } if (countMatchesEmail == 1) { ModelState.AddModelError("", "Такой емаил уже существует."); } if (countMatchesLogin == 1) { ModelState.AddModelError("", "Такой логин уже существует."); } var user = new User(); user.Login = registrationUserViewModel.Login.Trim(); string newSalt = GenerateSalt(); user.Hash = GetHashForRegistration(registrationUserViewModel.Password + newSalt); user.Email = registrationUserViewModel.Email; user.Salt = newSalt; if (ModelState.IsValid) { unitOfWork.UserRepository.Insert(user); unitOfWork.Save(); LoginController loginController = new LoginController(unitOfWork); AuthUserViewModel authUserViewModel = new AuthUserViewModel(); authUserViewModel.Login = registrationUserViewModel.Login.Trim(); authUserViewModel.Password = registrationUserViewModel.Password; return loginController.ViewAuthFrom(authUserViewModel); } } return View(); }