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")); } }
public async Task <ActionResult> Register(RegisterViewModel model) { if (!ModelState.IsValid) { return(View("Register", model)); } try { ApplicationUser user = await _membershipTools.UserManager.FindByNameAsync(model.UserName); if (user != null) { ModelState.AddModelError("UserName", "Bu kullanıcı adı daha önceden alınmıştır"); return(View("Register", model)); } ApplicationUser newUser = new ApplicationUser() { AvatarPath = "/assets/images/icon-noprofile.png", EmailConfirmed = false, Name = model.Name, Surname = model.Surname, Email = model.Email, UserName = model.UserName, //Location = model.Location == Models.Enums.Locations.KonumYok ? Models.Enums.Locations.Beşiktaş : model.Location, }; newUser.ActivationCode = StringHelpers.GetCode(); IdentityResult result = await _membershipTools.UserManager.CreateAsync(newUser, model.Password); if (result.Succeeded) { switch (_membershipTools.UserManager.Users.Count()) { case 1: await _membershipTools.UserManager.AddToRoleAsync(newUser, "Admin"); break; case 2: await _membershipTools.UserManager.AddToRoleAsync(newUser, "Operator"); break; case 3: await _membershipTools.UserManager.AddToRoleAsync(newUser, "Technician"); break; default: await _membershipTools.UserManager.AddToRoleAsync(newUser, "Customer"); break; } UriBuilder uri = new UriBuilder(); string[] hostComponents = Request.Host.ToUriComponent().Split(':'); string SiteUrl = uri.Scheme + System.Uri.SchemeDelimiter + uri.Scheme + hostComponents; EmailService emailService = new EmailService(); string body = $"Merhaba <b>{newUser.Name} {newUser.Surname}</b><br>Hesabınızı aktif etmek için aşağıdaki linke tıklayınız<br> <a href='{SiteUrl}/account/activation?code={newUser.ActivationCode}' >Aktivasyon Linki </a> "; await emailService.SendAsync(new HelpDesk.Models.Models.EmailModel() { Body = body, Subject = "Sitemize Hoşgeldiniz" }, newUser.Email); } else { string err = ""; foreach (IdentityError resultError in result.Errors) { err += resultError.Description; } ModelState.AddModelError(string.Empty, err); return(View("Register", model)); } TempData["Message1"] = "Kaydınız alınmıştır. Lütfen giriş yapınız"; return(RedirectToAction("Login")); } catch (Exception ex) { TempData["Message"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Register", ControllerName = "Account", ErrorCode = 500 }; return(RedirectToAction("Error500", "Home")); } }