Esempio n. 1
0
        public async Task <ActionResult> ChangePassword(ProfilePasswordViewModel model)
        {
            try
            {
                //ApplicationUser user = await _membershipTools.UserManager.GetUserAsync(HttpContext.User);

                var name = _membershipTools.IHttpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name)?.Value;
                var user = await _membershipTools.UserManager.FindByNameAsync(name);

                ChangePasswordViewModel data = new ChangePasswordViewModel()
                {
                    OldPassword        = model.ChangePasswordViewModel.OldPassword,
                    NewPassword        = model.ChangePasswordViewModel.NewPassword,
                    ConfirmNewPassword = model.ChangePasswordViewModel.ConfirmNewPassword
                };

                model.ChangePasswordViewModel = data;
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("Index", "Home"));
                }

                IdentityResult result = await _membershipTools.UserManager.ChangePasswordAsync(await _membershipTools.UserManager.GetUserAsync(HttpContext.User),
                                                                                               model.ChangePasswordViewModel.OldPassword, model.ChangePasswordViewModel.NewPassword);

                if (result.Succeeded)
                {
                    EmailService emailService = new EmailService();
                    string       body         = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızın şifresi değiştirilmiştir. <br> Bilginiz dahilinde olmayan değişiklikler için hesabınızı güvence altına almanızı öneririz.</p>";
                    emailService.Send(new HelpDesk.Models.Models.EmailModel()
                    {
                        Body = body, Subject = "Şifre Değiştirme hk."
                    }, user.Email);

                    return(RedirectToAction("Logout", "Account"));
                }
                else
                {
                    string err = "";
                    foreach (IdentityError resultError in result.Errors)
                    {
                        err += resultError + " ";
                    }
                    ModelState.AddModelError("", err);
                    return(RedirectToAction("Index", "Home"));
                }
            }
            catch (Exception ex)
            {
                var mdl = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu: {ex.Message}",
                    ActionName     = "ChangePassword",
                    ControllerName = "Account",
                    ErrorCode      = "500"
                };
                TempData["ErrorMessage"] = JsonConvert.SerializeObject(mdl);
                return(RedirectToAction("Error", "Home"));
            }
        }
Esempio n. 2
0
        public async Task <ActionResult> RecoverPassword(RecoverPasswordViewModel model)
        {
            try
            {
                ApplicationUser user = await _membershipTools.UserManager.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    ModelState.AddModelError(string.Empty, $"{model.Email} mail adresine kayıtlı bir üyeliğe erişilemedi");
                    return(View(model));
                }

                string newPassword = StringHelpers.GetCode().Substring(0, 6);

                await _membershipTools.UserManager.RemovePasswordAsync(user);

                await _membershipTools.UserManager.AddPasswordAsync(user,
                                                                    _membershipTools.UserManager.PasswordHasher.HashPassword(user, newPassword));

                //var token=await _membershipTools.UserManager.GeneratePasswordResetTokenAsync(user);
                //await _membershipTools.UserManager.ResetPasswordAsync(user, token, newPassword);

                _dbContext.SaveChanges();

                if (_dbContext.SaveChanges() > 0)
                {
                    TempData["Message"] = new ErrorViewModel()
                    {
                        Text           = $"Bir hata oluştu",
                        ActionName     = "RecoverPassword",
                        ControllerName = "Account",
                        ErrorCode      = 500
                    };
                    return(RedirectToAction("Error500", "Home"));
                }

                EmailService emailService = new EmailService();
                string       body         = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızın parolası sıfırlanmıştır<br> Yeni parolanız: <b>{newPassword}</b> <p>Yukarıdaki parolayı kullanarak sitemize giriş yapabilirsiniz.</p>";
                emailService.Send(new HelpDesk.Models.Models.EmailModel()
                {
                    Body = body, Subject = $"{user.UserName} Şifre Kurtarma"
                }, user.Email);
            }

            catch (Exception ex)
            {
                TempData["Message"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu {ex.Message}",
                    ActionName     = "RecoverPassword",
                    ControllerName = "Account",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error500", "Home"));
            }
            TempData["Message"] = $"{model.Email} mail adresine yeni şifre gönderildi.";
            return(View());
        }
        public async Task <ActionResult> RecoverPassword(RecoverPasswordVM model)
        {
            try
            {
                var userStore   = _membershipTools.NewUserStore();
                var userManager = _membershipTools.UserManager;

                var user = await userStore.FindByEmailAsync(model.Email);

                if (user == null)
                {
                    ModelState.AddModelError(string.Empty, $"{model.Email} mail adresine kayıtlı bir üyeliğe erişilemedi");
                    return(View(model));
                }

                var newPassword  = StringHelpers.GetCode().Substring(0, 6) + "A0*";
                var hashPassword = userManager.PasswordHasher.HashPassword(user, newPassword);

                await userStore.SetPasswordHashAsync(user, hashPassword);

                var result = userStore.Context.SaveChanges();

                if (result == 0)
                {
                    var errorVM = new ErrorVM()
                    {
                        Text           = $"Bir hata oluştu",
                        ActionName     = "RecoverPassword",
                        ControllerName = "Account",
                        ErrorCode      = "500"
                    };
                    TempData["ErrorMessage"] = JsonConvert.SerializeObject(errorVM);
                    return(RedirectToAction("Error500", "Home"));
                }

                var emailService = new EmailService();
                var body         = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızın parolası sıfırlanmıştır<br> Yeni parolanız: <b>{newPassword}</b> <p>Yukarıdaki parolayı kullanarak sitemize giriş yapabilirsiniz.</p>";
                emailService.Send(new EmailModel()
                {
                    Body = body, Subject = $"{user.UserName} Şifre Kurtarma"
                }, user.Email);
            }

            catch (Exception ex)
            {
                var errorVM = new ErrorVM()
                {
                    Text           = $"Bir hata oluştu {ex.Message}",
                    ActionName     = "RecoverPassword",
                    ControllerName = "Account",
                    ErrorCode      = "500"
                };
                TempData["ErrorMessage"] = JsonConvert.SerializeObject(errorVM);
                return(RedirectToAction("Error500", "Home"));
            }
            TempData["Message"] = $"{model.Email} mail adresine yeni şifre gönderildi.";
            return(View());
        }
        public async Task <ActionResult> ChangePassword(ChangePasswordVM model)
        {
            try
            {
                var user = await _membershipTools.UserManager.GetUserAsync(HttpContext.User);

                var data = new ChangePasswordVM()
                {
                    OldPassword        = model.OldPassword,
                    NewPassword        = model.NewPassword,
                    ConfirmNewPassword = model.ConfirmNewPassword
                };

                model = data;
                if (!ModelState.IsValid)
                {
                    return(RedirectToAction("Index", "Home"));
                }

                var result = await _membershipTools.UserManager.ChangePasswordAsync(await _membershipTools.UserManager.GetUserAsync(HttpContext.User),
                                                                                    model.OldPassword, model.NewPassword);

                if (result.Succeeded)
                {
                    var emailService = new EmailService();
                    var body         = $"Merhaba <b>{user.Name} {user.Surname}</b><br>Hesabınızın şifresi değiştirilmiştir. <br> Bilginiz dahilinde olmayan değişiklikler için hesabınızı güvence altına almanızı öneririz.</p>";
                    emailService.Send(new EmailModel()
                    {
                        Body = body, Subject = "Şifre Değiştirme hk."
                    }, user.Email);

                    return(RedirectToAction("Logout", "Account"));
                }
                else
                {
                    var err = "";
                    foreach (var resultError in result.Errors)
                    {
                        err += resultError + " ";
                    }
                    ModelState.AddModelError("", err);
                    return(RedirectToAction("Index", "Home"));
                }
            }
            catch (Exception ex)
            {
                var errorVM = new ErrorVM()
                {
                    Text           = $"Bir hata oluştu {ex.Message}",
                    ActionName     = "ChangePassword",
                    ControllerName = "Account",
                    ErrorCode      = "500"
                };
                TempData["ErrorMessage"] = JsonConvert.SerializeObject(errorVM);
                return(RedirectToAction("Error500", "Home"));
            }
        }