Ejemplo n.º 1
0
        public ActionResult Index(RecoverModel model)
        {
            try {
                //MembershipChangeLater
                ////List<MembershipUser> membershipUsers = ASPNET_Membership.WebSecurity.FindUsersByEmail(model.UserName_Email, 1, 10);

                ////if (membershipUsers.Count > 0) {
                ////    foreach (MembershipUser membershipUser in membershipUsers) {
                ////        EmailHelper emailHelper = new EmailHelper();
                ////        emailHelper.Send(membershipUser.Email, membershipUser.ResetPassword());
                ////    }
                ////} else {
                ////    membershipUsers = ASPNET_Membership.WebSecurity.FindUsersByName(model.UserName_Email, 1, 10);

                ////    if (membershipUsers.Count > 0) {
                ////        foreach (MembershipUser membershipUser in membershipUsers) {
                ////            EmailHelper emailHelper = new EmailHelper();
                ////            emailHelper.Send(membershipUser.Email, membershipUser.ResetPassword());
                ////        }
                ////    }
                ////}
            } catch (Exception ex) {
                ModelState.AddModelError("", ex.Message);
            }
            return(View(model));
        }
Ejemplo n.º 2
0
        public static void RecoverPassword(RecoverModel model, out string errorMessage, bool isTest = false)
        {
            try
            {
                IMembershipTools membershipTools = AppTools.InitMembershipTools(isTest);
                IEmailTools      emailTools      = AppTools.InitEmailTools(isTest);
                errorMessage = string.Empty;

                if (model.Email == membershipTools.GetUserEmail(model.UserName))
                {
                    string tempPassword = Membership.GeneratePassword(9, 1);
                    if (membershipTools.SetTempPassword(model.UserName, tempPassword) == false)
                    {
                        errorMessage = "Error updating account";
                    }

                    string emailBody = BuildRecoverBody(model.UserName, tempPassword);
                    if (emailTools.SendEmail(emailBody, model.Email) == false)
                    {
                        errorMessage = "Error sending recover email.";
                    }
                }
                else
                {
                    errorMessage = "Email and username is not valid.";
                }
            }
            catch (Exception ex)
            {
                DBCommands.RecordError(ex);
                errorMessage = ex.Message;
            }
        }
Ejemplo n.º 3
0
        public ActionResult Recover(RecoverModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            ApplicationUser user = UserManager.FindByNameAsync(model.UserName).Result;

            if (user == null || !(UserManager.IsEmailConfirmedAsync(user.Id).Result))
            {
                ViewBag.Message = "¡Error al restablecer su contraseña!";
                return(View(model));
            }

            var token     = UserManager.GeneratePasswordResetTokenAsync(user.Id).Result;
            var resetLink = Url.Action("ResetPassword", "Account", new { token = token }, protocol: HttpContext.Request.Url.Scheme);
            // Enviar Url para cambiar la contraseña
            EParameters parameter = new EParameters()
            {
                IdUnique    = 1,
                FullName    = $"{user.Profiles.FirstName} {user.Profiles.MiddleName} {user.Profiles.LastName}",
                Email       = user.Email,
                Link        = resetLink,
                currentTime = DateTime.Now
            };
            IRepositoryEmail service = new Email(new Templates(1), parameter);

            service.Submit();

            ViewBag.Message = "¡Se ha enviado un enlace para restablecer su contraseña a su dirección de correo electrónico¡";
            return(View(model));
        }
Ejemplo n.º 4
0
        public void RecoverPassword_ReturnString(string userName, string email, bool expected)
        {
            RecoverModel model = new RecoverModel();

            model.UserName = userName;
            model.Email    = email;
            string errorMessage;
            bool   isEmptyString;

            UserManager.RecoverPassword(model, out errorMessage, true);
            isEmptyString = string.IsNullOrEmpty(errorMessage);

            Assert.IsTrue(isEmptyString == expected);
        }
Ejemplo n.º 5
0
        public ActionResult Recover(RecoverModel model)
        {
            if (ModelState.IsValid)
            {
                if (_accountsWorker.SendRecoverPasswordEmail(model,
                                                             Url.Action("ResetPassword", "Account", new { un = "{0}", rt = "{1}" })))
                {
                    TempData["Message"] = MessageIdEnum.RecoverSuccess;
                    return(RedirectToAction("Message", "Messages"));
                }
            }

            // If we got this far, something failed, display failure message
            TempData["Message"] = MessageIdEnum.RecoverFailure;
            return(RedirectToAction("Message", "Messages"));
        }
Ejemplo n.º 6
0
        public ActionResult RecoverPassword(RecoverModel recover, string returnUrl)
        {
            Provider provider = new Provider();

            if (ModelState.IsValid)
            {
                string errorMessage = string.Empty;
                UserManager.RecoverPassword(recover, out errorMessage);

                if (string.IsNullOrEmpty(errorMessage))
                {
                    return(ManageReturnUrl(returnUrl));
                }

                ModelState.AddModelError("", errorMessage);
            }

            return(View());
        }
Ejemplo n.º 7
0
        public ActionResult RecoverPassword(RecoverModel recover, string returnUrl)
        {
            Provider provider = new Provider();

            if (ModelState.IsValid)
            {
                string errorMessage = string.Empty;
                UserManager.RecoverPassword(recover, "Admin", out errorMessage);

                if (string.IsNullOrEmpty(errorMessage))
                {
                    return(RedirectToAction("Instructions", recover));
                }

                ModelState.AddModelError("", errorMessage);
            }

            return(View(recover));
        }
Ejemplo n.º 8
0
        public bool SendRecoverPasswordEmail(RecoverModel model, string resetPasswordActionUrl)
        {
            var emailSent = false;

            try
            {
                var profile = _userRepository.GetUserProfileByNameAndEmail(model.UserName, model.Email);
                if (profile != null)
                {
                    // generate a reset token en specify that this token is valid for 24 hours (default value)
                    var resetToken = WebSecurity.GeneratePasswordResetToken(profile.UserName);

                    if (!string.IsNullOrEmpty(resetPasswordActionUrl))
                    {
                        resetPasswordActionUrl = System.Web.HttpUtility.UrlDecode(resetPasswordActionUrl);
                        // ReSharper disable once AssignNullToNotNullAttribute
                        resetPasswordActionUrl = string.Format(resetPasswordActionUrl, profile.UserName, resetToken);
                    }

                    var resetLink = string.Format("<a href='http://{0}{1}'>{2}</a>",
                                                  System.Web.HttpContext.Current.Request.Url.Host,
                                                  resetPasswordActionUrl,
                                                  "Confirm reset password");

                    dynamic email = new Email("RecoverPassword");
                    email.To        = profile.Email;
                    email.UserName  = profile.UserName;
                    email.ResetLink = resetLink;
                    email.Send();

                    emailSent = true;
                }
            }
            catch (Exception ex)
            {
                Logger.ErrorFormat(" SendRecoverPasswordEmail - error [{0}] - \r\n {1} \r\n\r\n", ex.Message, ex.StackTrace);
            }

            return(emailSent);
        }
Ejemplo n.º 9
0
        public static void RecoverPassword(RecoverModel model, string location, out string errorMessage, bool isTest = false)
        {
            try
            {
                ISprocCalls sprocCalls = AppTools.InitSprocCalls(isTest);
                errorMessage = string.Empty;

                UserInfo user = sprocCalls.UserInfoGetByUser(model.UserName);
                if (model.Email == user.Email)
                {
                    string code = RandomCode(7);
                    while (sprocCalls.UserInfoGetByCode(code) != null)
                    {
                        code = RandomCode(7);
                    }

                    user.GroupUsers  = GetGroupsByUserName(model.UserName, sprocCalls);
                    user.RecoverCode = RandomCode(7);

                    if (sprocCalls.UserInfoUpdate(user) == false)
                    {
                        errorMessage = "Error recovering password.";
                    }
                    else if (SendRecoverEmail(user, location, isTest) == false)
                    {
                        errorMessage = "Error sending email.";
                    }
                }
                else
                {
                    errorMessage = (user != null) ? "Email and username is not valid." : "Error loading user";
                }
            }
            catch (Exception ex)
            {
                DBCommands.RecordError(ex);
                errorMessage = ex.Message;
            }
        }
Ejemplo n.º 10
0
 public ActionResult Instructions(RecoverModel recover)
 {
     return(View(recover));
 }