Пример #1
0
        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());
                }
            }
        }
Пример #2
0
        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));
        }
Пример #3
0
 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());
         }
     }
 }