public ActionResult Odzyskaj(string MAIL, USERS USERS) { string resetCode = Guid.NewGuid().ToString(); using (BazaLocal db = new BazaLocal()) { var mail = db.USERS.SingleOrDefault(x => x.MAIL == USERS.MAIL); var currentdate = DateTime.Now; TimeSpan diff = currentdate.Subtract((DateTime)mail.LASTRESETPASSDATE); double hours = diff.TotalHours; if (mail != null) { if (hours < 24) { ModelState.AddModelError("MAIL", "Hasło można resetować raz na 24h!"); return(View()); } else { mail.RESETPASSWORDCODE = resetCode; db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); SendResetPasswordEmail(mail.MAIL, resetCode); ViewBag.SuccessMessage = "Na maila został przesłany link zmiany hasła."; return(View()); } } else { ModelState.AddModelError("MAIL", "Nie ma takiego mail!"); return(View()); } } }
public ActionResult NoweHaslo(ResetPasswordModel model) { var message = ""; if (ModelState.IsValid) { using (BazaLocal db = new BazaLocal()) { var user = db.USERS.SingleOrDefault(x => x.RESETPASSWORDCODE == model.ResetCode); //return db.USERS.AsNoTracking().SingleOrDefault(x => x.USER_ID == uID); var EncryptedNewPassword = registerRepository.Encryption(model.NewPassword); if (user != null) { if (EncryptedNewPassword == user.PASSWORD) { ModelState.AddModelError("NewPassword", "Nowe hasło musi być różne od obecnego"); return(View()); } else if (model.NewPassword != model.ConfirmPassword) { ModelState.AddModelError("NewPassword", "Hasła muszą być takie same"); ModelState.AddModelError("ConfirmPassword", "Hasła muszą być takie same"); return(View()); } else { //szyfrowanie nowego hasła user.PASSWORD = EncryptedNewPassword; //resetujemy kod resetowania hasła user.RESETPASSWORDCODE = ""; user.LASTRESETPASSDATE = DateTime.Now; //db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); ViewBag.SuccessMessage = "Udało się zmienić hasło."; return(RedirectToAction("Logowanie", "home")); } } } ModelState.Clear(); return(View(model)); } else { message = "Nie można zmienić hasła. Upewnij się czy wprowadzone hasła są identyczne oraz czy prośba o zmiane hasła nie została już wcześniej zakończona"; } ViewBag.Message = message; return(View(model)); }
public ActionResult NoweHaslo(string id) { if (string.IsNullOrWhiteSpace(id)) { return(HttpNotFound()); } using (BazaLocal db = new BazaLocal()) { var user = db.USERS.SingleOrDefault(x => x.RESETPASSWORDCODE == id); if (user != null) { ResetPasswordModel model = new ResetPasswordModel(); model.ResetCode = id; return(View(model)); } else { return(HttpNotFound()); } } }