public async Task <ActionResult> RecoverPassword(RecoverPasswordViewModel model)//RecoverPasswordViewModel içindekileri model nesnemle ulaşabilirim. { try { var userStore = NewUserStore(); var userManager = NewUserManager(); 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);//Yeni şifre veriyoruz ilk 6 hanesini await userStore.SetPasswordHashAsync(user, userManager.PasswordHasher.HashPassword(newPassword)); var result = userStore.Context.SaveChanges(); if (result == 0) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu", ActionName = "RecoverPassword", ControllerName = "Account", ErrorCode = 500 }; return(RedirectToAction("Error", "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 sistemize giriş yapabilirsiniz.</p>"; emailService.Send(new IdentityMessage() { Body = body, Subject = $"{user.UserName} Şifre Kurtarma" }, user.Email); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "RecoverPassword", ControllerName = "Account", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } return(View()); }
public async Task <JsonResult> SendPassword(string id) { try { var userStore = NewUserStore(); var user = await userStore.FindByIdAsync(id); if (user == null) { return(Json(new ResponseData() { message = "Kullanıcı bulunamadı", success = false })); } var newPassword = StringHelpers.GetCode().Substring(0, 6); await userStore.SetPasswordHashAsync(user, NewUserManager().PasswordHasher.HashPassword(newPassword)); await userStore.UpdateAsync(user); userStore.Context.SaveChanges(); string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port); 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 sistemize giriş yapabilirsiniz.</p>"; emailService.Send(new IdentityMessage() { Body = body, Subject = $"{user.UserName} Şifre Kurtarma" }, user.Email); return(Json(new ResponseData() { message = "Şifre sıfırlama maili gönderilmiştir", success = true })); } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu: {ex.Message}", success = false })); } }
public async Task <ActionResult> ChangePassword(ProfilePasswordViewModel _model) { var model = _model.ChangePasswordViewModel; try { var user = await _membershipTools.UserManager.GetUserAsync(HttpContext.User); //var id = _membershipTools.IHttpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Name)?.Value; //var user = await _membershipTools.UserManager.FindByIdAsync(id); var data = new ChangePasswordViewModel() { 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 MailModel() { 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) { TempData["Message"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "ChangePassword", ControllerName = "Account", ErrorCode = 500 }; return(RedirectToAction("Error500", "Home")); } }