public IdentityResult TrocarSenha(Guid usuarioId, AlterarSenhaVM model) { var user = userManager.FindByIdAsync(usuarioId.ToString()).Result; if (user == null) { return(IdentityResultFailed("Usuario", "Usuario não encontrado")); } var resultChangePassword = userManager.ChangePasswordAsync(user, model.SenhaAtual, model.NovaSenha).Result; if (!resultChangePassword.Succeeded) { return(resultChangePassword); } user.SenhaAlterada(); var resultUpdate = userManager.UpdateAsync(user).Result; if (!resultUpdate.Succeeded) { userManager.ChangePasswordAsync(user, model.NovaSenha, model.SenhaAtual).Wait(); return(IdentityResultFailed("Usuario", "Ocorreu um erro ao alterar a senha. Tente novamente mais tarde")); } AtualizarClaim(user, AppClaimsTypes.TrocarSenha, false.ToString()); signManager.SignOutAsync().Wait(); signManager.ApplicationSigIn(user, false); return(resultChangePassword); }
public async Task <IActionResult> AlterarSenha(string id) { var usuario = await db.Usuarios.FirstOrDefaultAsync(x => x.Hash == id); if (usuario == null || usuario.HashUtilizado) { // Este link já foi utilizado return(RedirectToAction(nameof(Login))); } var viewModel = new AlterarSenhaVM(usuario); return(View(viewModel)); }
//[DesabilitarValidarTrocarSenhaActionFilter] public async Task <ActionResult> AlterarSenha(AlterarSenhaVM model) { if (!ModelState.IsValid) { return(View(model)); } var result = controleDeAcessoAppServices.TrocarSenha(UsuarioId, model); if (!result.Succeeded) { AddErrors(result); return(View(model)); } return(RedirectToAction("Index")); }
public ActionResult AlterarSenha(AlterarSenhaVM model) { try { var codParceiro = Convert.ToInt32(User.Identity.Name); if (Request.HttpMethod == "POST") { if (ModelState.IsValid) { if (model.SenhaNova != model.SenhaNova2) { ModelState.AddModelError("SenhaNova", "Senhas não conferem"); return(View()); } else { var uow = new UOW(); var senha = Util.Crypto.ConvertSHA1(model.SenhaNova); if (uow.ParceiroRep.GetFirst(p => p.CodParceiro == codParceiro && p.Senha == senha) == null) { ModelState.AddModelError("Senha", "Senha atual incorreta."); } else { var parceiro = uow.ParceiroRep.GetFirst(p => p.CodParceiro == codParceiro); parceiro.Senha = model.SenhaNova; uow.ParceiroRep.Update(parceiro); uow.Save(); return(RedirectToAction("Index", "Home")); } } } } return(View()); } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <IActionResult> AlterarSenha(AlterarSenhaVM viewModel) { if (ModelState.IsValid) { var usuario = await db.Usuarios.FirstOrDefaultAsync(x => x.Hash == viewModel.Id); if (usuario == null || usuario.HashUtilizado) { return(RedirectToAction(nameof(Login))); } usuario.AlterarSenha(viewModel.NovaSenha); usuario.UtilizarHash(); db.Update(usuario); await db.SaveChangesAsync(); return(RedirectToAction(nameof(Login))); } return(View(viewModel)); }