Пример #1
0
        public ActionResult ResetarSenha(string code)
        {
            try
            {
                var bytes = Convert.FromBase64String(code);

                var decBase64 = Encoding.UTF8.GetString(Aes256.descriptografar("Prova", bytes));



                var model = new ResetarSenhaViewModel
                {
                    Code  = code,
                    Email = decBase64.Split(',')[0]
                };

                if (usuarioClient.ValidarCodigo(code, model.Email))
                {
                    return(View(model));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch (Exception)
            {
                return(View("Error"));
            }
        }
Пример #2
0
        public ActionResult ResetarSenha(ResetarSenhaViewModel viewModel)
        {
            var usuario = _usuarioRepositorio.ObterUsuarioPorCPF(viewModel.CPF);

            if (usuario == null)
            {
                ModelState.AddModelError(string.Empty, "Usuário não encontrado");
                return(View(viewModel));
            }

            if (!usuario.Externo)
            {
                ModelState.AddModelError(string.Empty, "Opção disponível apenas para usuários Externos.");
                return(View(viewModel));
            }

            if (usuario.Ativo == false)
            {
                ModelState.AddModelError(string.Empty, $"O usuário {usuario.ToString()} está inativo");
            }

            if (viewModel.NovaSenha != viewModel.ConfirmacaoNovaSenha)
            {
                ModelState.AddModelError(string.Empty, $"O campo Nova Senha e Confirmação não são iguais");
            }

            if (ModelState.IsValid)
            {
                using (var ws = new WsControleSenha.Criptografia())
                {
                    var resultado = ws.ValidarUsuarioCPF("CRM.TB_CRM_USUARIOS", usuario.LoginExterno, usuario.CPF);

                    if (resultado != "AUTORIZADO")
                    {
                        ModelState.AddModelError(string.Empty, resultado);
                        return(View(viewModel));
                    }

                    resultado = ws.alterarSenha(viewModel.NovaSenha, "CRM.TB_CRM_USUARIOS", usuario.LoginExterno);

                    if (resultado != "OK")
                    {
                        ModelState.AddModelError(string.Empty, resultado);
                        return(View(viewModel));
                    }

                    usuario.AlterarSenha(viewModel.NovaSenha);

                    _usuarioRepositorio.AlterarSenha(usuario);

                    TempData["Sucesso"] = true;
                }
            }

            return(View(viewModel));
        }
Пример #3
0
        public async Task <ActionResult> ResetarSenha(ResetarSenhaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RetornarComErro(ModelState));
            }

            var result = usuarioClient.BuscarUsuarioPorEmail(model.Email);

            if (result.Sucesso)
            {
                usuarioClient.ResetarSenha(model.SenhaHash, model.Code, result.Data.Id);
            }

            var redirectUrl = new UrlHelper(Request.RequestContext).Action("ResetarSenhaConfirmacao", "Account");

            return(Json(new { Url = redirectUrl }));
        }