Esempio n. 1
0
        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));
        }
Esempio n. 3
0
        //[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"));
        }
Esempio n. 4
0
 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));
        }