예제 #1
0
        public async Task <IActionResult> EsqueciASenha(EsqueciSenhaViewModel modelo)
        {
            if (ModelState.IsValid)
            {
                var usuario = await _userManager.FindByEmailAsync(modelo.Email).ConfigureAwait(false);

                var assunto = _localizador["Recuperação de Senha"];
                var msg     = _localizador["clique aqui para alterar sua senha"];
                var btn     = _localizador["Recuperar Senha"];


                if (usuario != null)
                {
                    var tokenUsuario = await _userManager.GeneratePasswordResetTokenAsync(usuario).ConfigureAwait(false);

                    var urlDeRetorno = Url.Action("RetornoEsqueceuSenha", "Account", new { usuarioId = usuario.Id, token = tokenUsuario }, Request.Scheme);
                    await _emailSender.SendEmailAsync(modelo.Email, assunto, $"{msg}: <a href='{urlDeRetorno}'>{btn}</a>").ConfigureAwait(false);
                }
                ViewData["Alerta"] = 1;
                return(View());
            }
            ViewData["erroLoginOuCadastro"] = 1;
            ModelState.AddModelError("", _localizador["É necessário digitar um e-mail"]);
            return(View(modelo));
        }
예제 #2
0
        public async Task <ActionResult> EsqueciSenha(EsqueciSenhaViewModel model)
        {
            if (ModelState.IsValid && GoogleRecaptchaValidate.Validate(model.Captcha))
            {
                var result = usuarioClient.BuscarUsuarioPorEmail(model.Email);

                if (result.Sucesso)
                {
                    var entrada = model.Email + "," + Guid.NewGuid().ToString();

                    var senha = "Prova";

                    var cripto   = Aes256.criptografar(senha, entrada);
                    var cripto64 = Convert.ToBase64String(cripto);

                    var resultCodigo = usuarioClient.AdicionarCodigoRecuperacaoSenha(cripto64, result.Data.Id);

                    if (resultCodigo.Sucesso)
                    {
                        var callbackUrl = Url.Action("ResetarSenha", "Account", new { userId = result.Data.Id, code = cripto64 }, protocol: Request.Url.Scheme);

                        //new SendEmailService("ADICIONE_SEU_EMAIL", "ADICIONE_SUA_SENHA").Send(model.Email, "Resetar Senha - Prova", "Por favor clique no link para resetar sua senha. " + callbackUrl);
                    }
                }

                var redirectUrl = new UrlHelper(Request.RequestContext).Action("EsqueciSenhaConfirmacao", "Account");
                return(Json(new { Url = redirectUrl }));
            }

            return(RetornarComErro(ModelState));
        }
        public EsqueciSenhaPage()
        {
            InitializeComponent();
            NavigationPage.SetHasNavigationBar(this, false);
            UsuarioRepo = new UsuarioRepository();

            BindingContext = new EsqueciSenhaViewModel(UsuarioRepo);
            ViewModel.UsuarioTrocaSenha = new Models.UsuarioTrocaSenha();
        }
예제 #4
0
        public async Task <LoginResultDTO> PostResetarSenhaAsync([FromBody] EsqueciSenhaViewModel model)
        {
            var resposta = await _httpClient.PostAsJsonAsync("RecuperarSenha", model);

            return(new LoginResultDTO
            {
                Succeeded = resposta.IsSuccessStatusCode,
                Token = await resposta.Content.ReadAsStringAsync(),
            });
        }
        public async Task <IActionResult> EsqueciSenha(EsqueciSenhaViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await _auth.PostResetarSenhaAsync(model);

                if (result.Succeeded)
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            return(View(model));
        }
예제 #6
0
        public ActionResult Senha(EsqueciSenhaViewModel model)
        {
            string senha = db.Clientes.Where(m => m.emailCliente == model.emailCliente).FirstOrDefault().senhaCliente;
            Email  objM  = new Email();

            objM.DispararEmail(model.emailCliente, senha);
            if (senha.Length > 0)
            {
                ViewBag.msg = "Senha enviada com sucesso!";
                return(View());
            }
            else
            {
                return(View());
            }
        }
예제 #7
0
        public async Task <ActionResult> EsqueciSenhaAsync(EsqueciSenhaViewModel model)
        {
            if (ModelState.IsValid)
            {
                var usuario = await UserManager.FindByEmailAsync(model.Email);

                if (usuario != null)
                {
                    var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id);

                    var linkCallBack = Url.Action("ConfirmacaoAlteracaoSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme);

                    await UserManager.SendEmailAsync(usuario.Id, "Fórum ByteBank - Alteração de senha", $"Bem vindo ao Fórum ByteBank! Clique aqui para alterar a sua senha {linkCallBack}.");
                }
                return(View("EmailAlteracaoSenhaEnviado"));
            }

            return(View());
        }
예제 #8
0
        public ActionResult EsqueciSenha(EsqueciSenhaViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            var usuairo = repository.Usuario.ObterPeloLogin(Usuario.SepararEmail(viewModel.Email));

            if (usuairo.ID > 0)
            {
                switch (usuairo.Perfil)
                {
                case Perfil.Cordenador:
                    var coordenador = repository.Usuario.ObterCoordenador(Convert.ToInt32(usuairo.CoordenadorID));

                    if (coordenador.Coordenador.Email == viewModel.Email)
                    {
                        string novaSenha = Usuario.geraSenha();
                        usuairo.Senha = Usuario.Encriptar(novaSenha);
                        try
                        {
                            repository.Usuario.Salvar(usuairo);
                            repository.SaveChanges();
                            Usuario.EnviarEmailDeNovaSenha(coordenador.Coordenador.Nome, coordenador.Coordenador.Email, novaSenha);
                        }
                        catch (Exception ex)
                        {
                            TempData["Alerta"] = ex.Message.Replace(Environment.NewLine, "</br>");
                            return(View(viewModel));
                        }
                    }
                    else
                    {
                        TempData["Alerta"] = "E-mail informado não localizado no cadastro";
                        return(View(viewModel));
                    }
                    break;

                case Perfil.Aluno:
                    var aluno = repository.Usuario.ObterAluno(Convert.ToInt32(usuairo.AlunoID));

                    if (aluno.Aluno.Email == viewModel.Email)
                    {
                        string novaSenha = Usuario.geraSenha();
                        usuairo.Senha = Usuario.Encriptar(novaSenha);
                        try
                        {
                            repository.Usuario.Salvar(usuairo);
                            repository.SaveChanges();
                            Usuario.EnviarEmailDeNovaSenha(aluno.Aluno.Nome, aluno.Aluno.Email, novaSenha);
                        }
                        catch (Exception ex)
                        {
                            TempData["Alerta"] = ex.Message.Replace(Environment.NewLine, "</br>");
                            return(View(viewModel));
                        }
                    }
                    else
                    {
                        TempData["Alerta"] = "E-mail informado não localizado no cadastro";
                        return(View(viewModel));
                    }
                    break;

                case Perfil.Representante:
                    var representante = repository.Usuario.ObterRepresentante(Convert.ToInt32(usuairo.RepresentanteID));

                    if (representante.Representante.Email == viewModel.Email)
                    {
                        string novaSenha = Usuario.geraSenha();
                        usuairo.Senha = Usuario.Encriptar(novaSenha);
                        try
                        {
                            repository.Usuario.Salvar(usuairo);
                            repository.SaveChanges();
                            Usuario.EnviarEmailDeNovaSenha(representante.Representante.Nome, representante.Representante.Email, novaSenha);
                        }
                        catch (Exception ex)
                        {
                            TempData["Alerta"] = ex.Message.Replace(Environment.NewLine, "</br>");
                            return(View(viewModel));
                        }
                    }
                    else
                    {
                        TempData["Alerta"] = "E-mail informado não localizado no cadastro";
                        return(View(viewModel));
                    }
                    break;
                }
            }
            else
            {
                TempData["Alerta"] = "E-mail informado não localizado no cadastro";
                return(View(viewModel));
            }
            ModelState.Clear();
            TempData["Mensagem"] = "Sucesso";
            return(View());
        }