public ActionResult ChangePassword(UserDTO user, string guid) { if (guid != null && guid != "") { PasswordResetTokenDTO prt = passwordResetTokenLogic.Get(guid); UserDTO _user = utilisateurLogic.Get(prt.User_id); if (user.Password == user.confirmPassword) { _user.Password = user.Password; _user.confirmPassword = user.confirmPassword; UpdatePassword(_user); passwordResetTokenLogic.Delete(prt); mailLogic.SendPasswordChangedMail(_user.Email); ViewBag.Message = "Votre mot de passe à correctement été modifié, veuillez vous identifier pour accéder à l'application."; ViewBag.Status = true; } } else { ViewBag.Message = "Il y a eu une erreur"; ViewBag.Status = false; } return(View()); }
public void Insert(PasswordResetTokenDTO passwordResetTokenDTO) { using (CarRentalEntities contexte = new CarRentalEntities()) { contexte.usp_PasswordResetToken_Insert(passwordResetTokenDTO.Token, passwordResetTokenDTO.Expiry_date, passwordResetTokenDTO.User_id); } }
/// <summary> /// Methode qui génère un token de changement de mot de passe et qui l'insère en base de données. /// </summary> /// <param name="user"></param> /// <returns></returns> public PasswordResetTokenDTO GeneratePasswordResetToken(UserDTO user) { //Générer le token PasswordResetTokenDTO passwordResetTokenDTO = new PasswordResetTokenDTO(user.Id); // Sauvegarder le token en base passwordResetTokenLogic.Insert(passwordResetTokenDTO); return(passwordResetTokenDTO); }
public void SendNewAccountLinkEmail(string emailTarget, PasswordResetTokenDTO passwordResetTokenDTO, string uri, string pathAndQuery) { var verifyUrl = "/Account/ChangePassword/" + passwordResetTokenDTO.Token; var link = uri.Replace(pathAndQuery, verifyUrl); string subject = "Bienvenue sur CarRental"; string body = "Bonjour,<br><br> Vous venez d'obtenir l'accès à l'application CarRental, veuillez cliquez sur ce <a href='" + link + "'>lien</a> afin de définir votre mot de passe.<br/>" + "Ce lien a une durée de validité de 2 heures, passé ce délai vous devrez effectuer une demande manuelle de changement de mot passe <br> <br> Bonne journée, <br> CarRental"; SendEMail(emailTarget, subject, body); }
public void SendPasswordResetLinkEmail(string emailTarget, PasswordResetTokenDTO passwordResetTokenDTO, string uri, string pathAndQuery) { var verifyUrl = "/Account/ChangePassword/" + passwordResetTokenDTO.Token; var link = uri.Replace(pathAndQuery, verifyUrl); string subject = "Demande de changement de mot de passe"; string body = "Bonjour,<br> Veuillez cliquer sur ce <a href='" + link + "'>lien</a> pour changer votre mot de passe.<br/>" + "Ce lien a une durée de validité de 2 heures, passé ce délai vous devrez réitérer votre demande. <br> <br> Bonne journée, <br> CarRental"; SendEMail(emailTarget, subject, body); }
public ActionResult EditPassword() { int idCurrentUser = (int)Session["userId"]; PasswordResetTokenDTO passwordResetTokenDTO = new PasswordResetTokenDTO(idCurrentUser); passwordResetTokenLogic.Insert(passwordResetTokenDTO); FormsAuthentication.SignOut(); Session.Abandon(); return(RedirectToAction("ChangePassword", "Account", new { id = passwordResetTokenDTO.Token })); }
public void Delete(PasswordResetTokenDTO passwordResetTokenDTO) { if (passwordResetTokenDTO.Id == 0) { throw new NullReferenceException(); } else { passwordResetTokenEngine.Delete(passwordResetTokenDTO.Id); } }
public ActionResult ChangePassword(string id) { // Variable qui me permet de déterminer si je dois afficher une erreur true = erreur bool status = true; // Variable qui me permet d'afficher le message de mon erreur string message; if (id != null && id != "") { PasswordResetTokenDTO passwordResetTokenDTO = passwordResetTokenLogic.Get(id); if (passwordResetTokenDTO == null) { // Si le token n'existe pas message = "Lien invalide"; } else if (passwordResetTokenDTO.Expiry_date.HasValue && DateTime.Compare(passwordResetTokenDTO.Expiry_date.Value, DateTime.Now) < 0) { message = " Ce lien est expiré"; } else { // Si le code token existe et qu'il est encore valide status = false; UserDTO userDTO = utilisateurLogic.Get(passwordResetTokenDTO.User_id); ViewBag.UserNow = userDTO; ViewBag.Status = status; return(View("ChangePassword", userDTO)); } } else { // Si il n'y a pas de token message = "Lien invalide"; } ViewBag.Message = message; ViewBag.Status = status; return(View()); }
public void Insert(PasswordResetTokenDTO passwordResetTokenDTO) { passwordResetTokenEngine.Insert(passwordResetTokenDTO); }