public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { // Gerar o token de reset da senha // Gerar a url para o usuário // Vamos enviar esse email var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario != null) { var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); var linkDeCallback = 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", $"Clique aqui {linkDeCallback} alterar a sua senha!"); } return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(modelo.Email); //se o usuario já existir cadastrado envie o email de fato, se não apenas redirecione para a view if (usuario != null) { //criando token de reset var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); //cria o email var linkDeCallBack = Url.Action("ConfirmacaoAlteracaoDeSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme); //envia o email await UserManager.SendEmailAsync( usuario.Id, "Fórum - Alteração de senha", $"Clique no link abaixo para alterar a sua senha : {linkDeCallBack}"); } //mostra a view return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario != null) { var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); var linkDeCallback = Url.Action( "ConfirmacaoAlteracaoSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme); await UserManager.SendEmailAsync(usuario.Id, "Lgg Rastreablidade - Alteração de Senha", $"Bem vindo a LGG Rastreabilidade , clique aqui {linkDeCallback} para alterar a sua senha!"); } return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario != null) { //Gerar token de reset da senha var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); //Gerar Url para usuario var linkCallBack = Url.Action( "ConfirmacaoAlterouSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme); //Enviar e-mail await UserManager.SendEmailAsync( usuario.Id, "Fórum ByteBank - Alteração de Senha", $"Bem Vindo ao fórum ByteBank, clique aqui {linkCallBack} para alterar a sua senha!" ); } return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { // gerar token para reset da senha // gerar url para o usuário // enviar o email ao usuário var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario != null) { var token = UserManager.GeneratePasswordResetTokenAsync(usuario.Id); // criando uma view para enviar ao usuário para que esse ao clicar seja automaticamente validado sem o mesmo ter que // acessar uma pagina, copiar e colar token, etc ... var linkDeCallBack = Url.Action("ConfirmacaoAlteracaoSenha", "conta", new { usurioID = usuario.Id, token = token }, Request.Url.Scheme); // enviando email para o usuário com o token para esse poder validar email await UserManager.SendEmailAsync(usuario.Id, "Forum Byte Bank - Alteração de senha", $"Clique aqui {linkDeCallBack} para alterar sua senha."); } // independente de o usuario estar na base ou nao, iremos mostrar a mensagem de senha enviada // para previnir novamente de um hacker saber que a conta é valida ou não. return(View("EmailAlteracaoSenha")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(modelo.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 ); var body = "Alteração de senha : " + linkCallback; await UserManager.SendEmailAsync(usuario.Id, "Alteração de senha : ", body); } return(View("EmailALteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel model) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(model.Email); if (usuario != null) { var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); var linkDeCallback = Url.Action("ConfirmacaoAlteracaoSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme); await UserManager.SendEmailAsync(usuario.Id, "Projeto Teste Identity - Alteração de senha", $"Redefinição de senha, clique aqui {linkDeCallback}!"); } return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }
public async Task <ActionResult> EsqueciSenha(ContaEsqueciSenhaViewModel modelo) { if (ModelState.IsValid) { var usuario = await UserManager.FindByEmailAsync(modelo.Email); if (usuario != null) { var token = await UserManager.GeneratePasswordResetTokenAsync(usuario.Id); var callbackUrl = Url.Action("ConfirmacaoAlteracaoSenha", "Conta", new { usuarioId = usuario.Id, token = token }, Request.Url.Scheme); await UserManager.SendEmailAsync( usuario.Id, "Gerenciador de Chamados - Alteração de Senha", "Clique no link para alterar sua senha " + callbackUrl); } return(View("EmailAlteracaoSenhaEnviado")); } return(View()); }