public async Task <IActionResult> ForgetPasswordPost(ForgetPasswordVM forgetPassViewModel)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("", "Zəhmət olmasa Emailinizi daxil edin");
                return(View(forgetPassViewModel));
            }

            ApplicationUser user = await _userManager.FindByEmailAsync(forgetPassViewModel.Email);

            if (user == null)
            {
                ModelState.AddModelError("", "Bu email qeydiyyatdan keçirilməyib.");
                return(View(forgetPassViewModel));
            }

            string passwordResetToken = await _userManager.GeneratePasswordResetTokenAsync(user);


            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);

            client.UseDefaultCredentials = false;
            client.EnableSsl             = true;
            client.Credentials           = new NetworkCredential(_configuration["ConnectionsStrings:SmtpClientCredentialEmail"], _configuration["ConnectionsStrings:SmtpClientCredentialPassword"]);
            MailMessage message = new MailMessage("*****@*****.**", forgetPassViewModel.Email);

            message.IsBodyHtml = true;
            message.Subject    = "Hesabın Bərpası";
            message.Body       = $"<a href='http://power123elec-001-site1.ctempurl.com/Account/ChangePassword?userId={user.Id}&passwordResetToken={passwordResetToken}'>Hesabın bərpası</a>";
            await client.SendMailAsync(message);



            return(View());
        }
        public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordVM model)
        {
            if (ModelState.IsValid)
            {
                var _user = await _userManager.FindByEmailAsync(model.Email);

                if (_user == null)
                {
                    return(BadRequest("User doesn't exist"));
                }
                if (!_forgetPasswordLoggerService.Add(_user))
                {
                    return(BadRequest("Something went wrong"));
                }
                await _userManager.RemovePasswordAsync(_user);

                string newPassword = NewPassword(8);
                var    result      = await _userManager.AddPasswordAsync(_user, newPassword);
                await SendResetPasswordAsync(model.Email, newPassword, model.Email);

                if (result.Succeeded)
                {
                    return(Ok("Password has been reset successfully!"));
                }
                return(BadRequest("Something went wrong"));
            }

            return(BadRequest("Some properties are not valid"));
        }
Exemple #3
0
        public async Task <IActionResult> ForgetPassword([FromBody] ForgetPasswordVM model)
        {
            var user = await _userManager.Users.FirstOrDefaultAsync(x => x.PhoneNumber == model.PhoneNumber);

            if (user == null)
            {
                throw new UserNotFoundException(model.PhoneNumber);
            }

            var isRegisteredBefore = await _userManager.HasPasswordAsync(user);

            if (!isRegisteredBefore)
            {
                throw new UserNotRegisteredException(model.PhoneNumber);
            }

            if (!user.PhoneNumberConfirmed)
            {
                throw new PhoneNumberNotConfirmedException(model.PhoneNumber);
            }

            var code = new Random().Next(100000, 999999).ToString();

            user.ResetPasswordCode = code;

            await _userManager.UpdateAsync(user);

            _smsSender.Send(new SMSMessageModel
            {
                Message       = $@"{code} هو كود التحقق الخاص بك في بريمو",
                ToPhoneNumber = model.PhoneNumber
            });

            return(Ok());
        }
Exemple #4
0
        public IActionResult ForgetPassword([FromBody] ForgetPasswordVM vm)
        {
            if (ModelState.IsValid)
            {
                UserVM userVM = new UserVM()
                {
                    UserName = vm.UserName,
                    Password = vm.NewPassword,
                };
                var result = userContext.forgetPasswordReset(vm.Token, userVM).Result;
                if (result == true)
                {
                    return(Ok());
                }
            }

            return(NoContent());
        }
        public ActionResult ForgotPassword(ForgetPasswordVM data, string NewPassword, string Email)
        {
            var cus = db.Customers.Where(x => x.Email.Equals(data.Email)).SingleOrDefault();


            if (cus != null)
            {
                if ((cus.Phone.Equals(data.Phone)) && cus.Email.Equals(data.Email))
                {
                    cus.Token = MySecurity.EncryptPass(DateTime.Now.Ticks + cus.Email + MySecurity.RandomString(6));
                    db.SaveChanges();

                    var url  = string.Format("/Customer/NewPassword/?token={0}&cid={1}", cus.Token, cus.Id);
                    var link = Request.Url.AbsoluteUri.Replace(Request.Url.PathAndQuery, url);

                    string subject = "Forgot Password !";
                    string body    = "<br/><br/>Here is your password! Please log out account to try new password" +
                                     "<br/> <a href='" + link + "'><h3>" + link + "</h3>  </a>";

                    if (MySecurity.SendMail(data.Email, subject, body))
                    {
                        return(RedirectToAction("Login", "Customer"));
                    }
                    else
                    {
                        ViewBag.Message = "Error!";
                    }
                }
                else
                {
                    ViewBag.Message = "Phone or Email Invalid!";
                }
            }
            else
            {
                ViewBag.Message = "Email invalid!";
            }


            return(View(data));
        }
        public async Task <IActionResult> ForgetPassword(ForgetPasswordVM model)
        {
            if (ModelState.IsValid)
            {
                var user = await userManager.FindByEmailAsync(model.Email);

                if (user != null)
                {
                    var token = await userManager.GeneratePasswordResetTokenAsync(user);

                    var passwordResetLink = Url.Action("ResetPassword", "Account", new { model.Email, Token = token }, Request.Scheme);

                    MailHelper.SendMail("PAssword Reset Link", passwordResetLink);

                    logger.Log(LogLevel.Warning, passwordResetLink);
                    return(RedirectToAction("ConfirmForgetPassword"));
                }
                return(RedirectToAction("ConfirmForgetPassword"));
            }
            return(View(model));
        }
        public async Task <IActionResult> ForegetPassword(ForgetPasswordVM forgetPassword)
        {
            if (ModelState.IsValid)
            {
                var user = await manager.FindByEmailAsync(forgetPassword.Email);

                if (user != null)
                {
                    var token = await manager.GeneratePasswordResetTokenAsync(user);

                    var passwordResetLink = Url.Action("ResetPassword", "Account", new { Email = forgetPassword.Email, Token = token }, Request.Scheme);

                    Mail.SendMail("Reset Palssword Link", passwordResetLink, forgetPassword.Email);
                    return(RedirectToAction("ConformForgetPassword"));
                }
                ModelState.AddModelError("", "this mail not register");
                return(View(forgetPassword));
            }

            return(View(forgetPassword));
        }
        public ForgetPasswordPage()
        {
            InitializeComponent();

            BindingContext = viewModel = new ForgetPasswordVM();
        }