コード例 #1
0
        public async Task <AutenticacaoResult> ResetarSenhaAsync(ResetarSenhaModel model)
        {
            var usuario = await _uow.UsuarioRepositorio
                          .ObterUsuarioPorEmailAsync(model.Email);

            if (usuario == null || usuario.Deletado)
            {
                return(new AutenticacaoResult
                {
                    Mensagem = Dicionario.ME001,
                    Sucesso = false,
                });
            }

            usuario.Salt  = SenhaHasherHelper.CriarSalt(8);
            usuario.Senha = SenhaHasherHelper
                            .GerarHash(model.Senha, usuario.Salt);

            await _uow.UsuarioRepositorio.SaveAsync(usuario);

            return(new AutenticacaoResult
            {
                Mensagem = Dicionario.MS002,
                Sucesso = true
            });
        }
コード例 #2
0
        public async Task ResetarSenhaAsync_AutenticacaoServico_SucessoNoResetDaSenhaDoUsuario()
        {
            var novaSenha = _faker.Internet.Password();
            var model     = new ResetarSenhaModel
            {
                Email            = "*****@*****.**",
                Senha            = novaSenha,
                ConfirmacaoSenha = novaSenha
            };

            var authResult = await _autenticacaoServico
                             .ResetarSenhaAsync(model);

            authResult.Mensagem.Should().Be(Dicionario.MS002);
            authResult.Sucesso.Should().BeTrue();

            var usuarioComSenhaResetada = await _uow.UsuarioRepositorio
                                          .ObterUsuarioPorEmailAsync(model.Email);

            var senhaHashEsperado = SenhaHasherHelper
                                    .GerarHash(model.Senha, usuarioComSenhaResetada.Salt);

            usuarioComSenhaResetada.Senha.Should()
            .Be(senhaHashEsperado);
        }
コード例 #3
0
        public IActionResult ResetarSenha(string token, string email)
        {
            var model = new ResetarSenhaModel {
                Token = token, Email = email
            };

            return(View(model));
        }
コード例 #4
0
        public async Task <bool> ResetarSenhaService(ResetarSenhaModel model)
        {
            StringContent content  = new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
            var           response = await _client.PostAsync("Login/ResetPassword", content);

            if (response.IsSuccessStatusCode)
            {
                return(true);
            }
            return(false);
        }
コード例 #5
0
        public async Task ResetarSenhaAsync_AutenticacaoServico_RespostaDeErrorSeUsuarioEstiverDeletado()
        {
            var novaSenha = _faker.Internet.Password();
            var model     = new ResetarSenhaModel
            {
                Email            = "*****@*****.**",
                Senha            = novaSenha,
                ConfirmacaoSenha = novaSenha
            };

            var authResult = await _autenticacaoServico
                             .ResetarSenhaAsync(model);

            authResult.Mensagem.Should().Be(Dicionario.ME001);
            authResult.Sucesso.Should().BeFalse();
        }
コード例 #6
0
        public async Task ResetarSenhaAsync_AutenticacaoServico_RespostaDeErrorSeEmailNaoExistir()
        {
            var novaSenha = _faker.Internet.Password();
            var model     = new ResetarSenhaModel
            {
                Email            = _faker.Person.Email,
                Senha            = novaSenha,
                ConfirmacaoSenha = novaSenha
            };

            var authResult = await _autenticacaoServico
                             .ResetarSenhaAsync(model);

            authResult.Mensagem.Should().Be(Dicionario.ME001);
            authResult.Sucesso.Should().BeFalse();
        }
コード例 #7
0
        public async Task <IActionResult> ResetarSenha(ResetarSenhaModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var result = await _loginService.ResetarSenhaService(model);

                    if (result)
                    {
                        _toast.AddSuccessToastMessage("Senha alterada com sucesso !!!");
                        return(View("Login"));
                    }
                }
                _toast.AddErrorToastMessage("Erro ao atualizar senha !!!");
                return(RedirectToAction("Index", "Home"));
            }
            catch (Exception)
            {
                return(RedirectToAction("HttpStatusCodeHandler", "Home", new { statusCode = this.Response.StatusCode = 500 }));
            }
        }