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)); }
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(); }
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)); }
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()); } }
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()); }
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()); }