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")); } }
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")); } }