public ActionResult RecuperarSenha(RecuperarSenha rec, int?ids) { UsuarioQuimico usu2 = db.UsuarioQuimico.Where(t => t.Email == rec.Email).ToList().FirstOrDefault(); if (usu2 != null) { string hash = Funcoes.HashTexto(DateTime.Now.ToString("yyyyMMddHHmmss"), "SHA512"); hash = hash.Replace("\\", "").Replace("+", "").Replace("&", "").Replace("/", ""); usu2.RedefinirSenha = hash; usu2.Datalimite = DateTime.Now.AddDays(1); db.Entry(usu2).State = EntityState.Modified; db.SaveChanges(); string assunto = "Alteraçao de senha"; string mensagem = "Para alterar sua senha acesse o link abaixo: <br/>"; mensagem += "<a href='http://localhost:56266/Homepage/RedefinirSenha/" + hash + "'>Clique aqui para alterar sua senha</a>"; if (Funcoes.EnviarEmail(rec.Email, assunto, mensagem) != "error|Erro ao enviar e-mail") { TempData["MSG"] = "success|Redefinição de senha enviada por e-mail"; ViewBag.EmpresaSelecionada = ids; return(RedirectToAction("Index", "Quimico", new { id = ids }));// redirecionar para o index da empresas selicionada } else { ModelState.AddModelError("", "Erro ao enviar e-mail!"); return(View()); } } else { ModelState.AddModelError("", "Este E-mail não pertence a nenhuma conta!"); return(View()); } }
public Usuario SendEmailNewPassword(string userName, string urlDomain) { try { UsuarioBS usuarioBS = new UsuarioBS(); Usuario usuario = usuarioBS.GetByUserName(userName); Guid token = Guid.NewGuid(); RecuperarSenha recuperarSenha = new RecuperarSenha { ID_USUARIO = usuario.ID_USUARIO, PRIVATE_TOKEN = token.ToString(), ALTERADO_SENHA = false, }; _dbRecuperarSenha.Add(recuperarSenha); StringBuilder body = new StringBuilder(); body.AppendLine($"<p>Olá { usuario.NOME_USUARIO }</p>"); body.AppendLine($"<p>Acesse o link abaixo ou copie e cole esse url no navegador {urlDomain}/AlterarSenha/?token={token} </p>"); body.AppendLine($"<a href=\"{urlDomain}/AlterarSenha/?token={token}\" >Alterar Senha</a>"); body.AppendLine(""); EmailManagement.Send("*****@*****.**", usuario.EMAIL_USUARIO, "Reupera senha | KIS", body.ToString()); return(usuario); } catch (Exception ex) { throw ex; } }
public async Task <RecuperarSenha> CriarRegRecuperarSenha(Pessoa pessoa) { RecuperarSenha recuperarSenha = new RecuperarSenha { DataSolicitacao = DateTime.Now, DataExpiracao = await _tokenService.CalculaExpiracao(), Ativo = true, Token = await _tokenService.GerarToken(), NotificacaoFoiEnviada = false, Pessoa = pessoa }; try { await _unitOfWork.GetRepositoryAsync <RecuperarSenha>().Insert(recuperarSenha); await _unitOfWork.SaveAsync(); } catch (Exception e) { //throw new Exception(); return(null); } return(recuperarSenha); }
//public async Task<bool> AssociarContaGoogle(AssociaContaGoogleViewModel modelo) //{ // var conviteHistorico = await _conviteHistoricoRepository.PegarConvitesHistoricoComConvite(x => x.Id == modelo.IdConviteHistorico); // var usuario = _usuarioRepository.PegarUsuarioLogin(x => x.Login == conviteHistorico.Convite.Email); // try // { // if (conviteHistorico != null) // { // conviteHistorico.Convite.PessoaCriada = usuario.Organizacoes.FirstOrDefault(x => x.IdOrganizacao == conviteHistorico.IdOrganizacao)?.Pessoa; // conviteHistorico.Convite.Status = ConviteStatusEnum.Inativo; // } // if (usuario == null) // { // return false; // } // ValidationSettings validation = new ValidationSettings() // { // ForceGoogleCertRefresh = true, // Audience = null, // IssuedAtClockTolerance = TimeSpan.FromMinutes(5), // ExpirationTimeClockTolerance = TimeSpan.FromMinutes(5) // }; // var resposta = await GoogleJsonWebSignature.ValidateAsync(modelo.UsuarioSocial.IdToken, validation); // if (resposta == null || resposta.Email != usuario.Login) // { // return false; // } // var pessoa = await _pessoaRepository.GetPorIdComUsuario(conviteHistorico.Convite.PessoaCriada.Id, conviteHistorico.IdOrganizacao); // pessoa.Nome = resposta.Name; // pessoa.Foto = resposta.Picture; // _pessoaRepository.Update(pessoa); // _pessoaRepository.Save(); // await AdicionaNaOrganizacaoDoConvite(conviteHistorico.IdOrganizacao, usuario, conviteHistorico.ResponsavelCriacao, conviteHistorico.Convite.IdPessoaCriada); // _conviteHistoricoRepository.Update(conviteHistorico); // _conviteHistoricoRepository.Save(); // return true; // } // catch (Exception error) // { // return false; // } //} public async Task <InserirSenhaResultadoViewModel> InserirSenha(InserirSenhaViewModel modelo) { //var conviteHistorico = await _unitOfWork.GetRepositoryAsync<ConviteHistorico>().GetOne(x => x.Id == modelo.IdConviteHistorico); //var usuario = _usuarioRepository.PegarUsuarioLogin(x => x.Login == conviteHistorico.Convite.Email); var recuperarSenha = new RecuperarSenha(); //recuperarSenha.DataSolicitacao = DateTime.Now; //recuperarSenha.DataExpiracao = await _tokenService.CalculaExpiracao(); //recuperarSenha.Ativo = true; //recuperarSenha.Token = await _tokenService.GerarToken(); //recuperarSenha.Pessoa = usuario.Organizacoes.FirstOrDefault(x => x.IdOrganizacao == conviteHistorico.IdOrganizacao)?.Pessoa; await _unitOfWork.GetRepositoryAsync <RecuperarSenha>().Insert(recuperarSenha); await _unitOfWork.SaveAsync(); // Inativa a requisição corrente, no entanto, marca o usuário gerado a partir dessa requisição //if (conviteHistorico != null) //{ // conviteHistorico.Convite.PessoaCriada = usuario.Organizacoes.FirstOrDefault(x => x.IdOrganizacao == conviteHistorico.IdOrganizacao)?.Pessoa; // conviteHistorico.Convite.Status = ConviteStatusEnum.Inativo; //} var Senha = await _unitOfWork.GetRepositoryAsync <RecuperarSenha>().GetOne(x => x.Pessoa.Email == recuperarSenha.Pessoa.Email && x.Token == recuperarSenha.Token); modelo.IdRecuperarSenha = Senha.Id; //await AdicionaNaOrganizacaoDoConvite(conviteHistorico.IdOrganizacao, usuario, conviteHistorico.ResponsavelCriacao, conviteHistorico.Convite.IdPessoaCriada); return(await TrocarSenha(modelo.IdRecuperarSenha, modelo.NovaSenha)); }
public void Update(RecuperarSenha recuperarSenha) { try { _dbRecuperarSenha.Update(recuperarSenha); } catch (Exception ex) { throw ex; } }
public void Save(RecuperarSenha recuperarSenha) { try { _dbRecuperarSenha.Add(recuperarSenha); } catch (Exception ex) { throw ex; } }
public int GeraCodigo() { RecuperarSenha rec = new RecuperarSenha(); int codigo; do { Random random = new Random(); codigo = random.Next(100000000, 999999999); rec = db.RecuperarSenha.Where(t => t.SenhaId == codigo).ToList().FirstOrDefault(); } while (rec != null); return(codigo); }
public void AddUser() { var recuperarSenhas = _recuperarSenhaRepository.GetAll(); RecuperarSenha recuperarSenha = new RecuperarSenha { ID_USUARIO = 2, PRIVATE_TOKEN = "nada", ALTERADO_SENHA = true, }; _recuperarSenhaRepository.Add(recuperarSenha); var recuperarSenhadepois = _recuperarSenhaRepository.GetAll(); Assert.IsTrue(recuperarSenhas.Count() < recuperarSenhadepois.Count()); }
public ActionResult RecuperarSenha(RecuperarSenha model) { if (!ModelState.IsValid) { return(PartialView("RecuperarSenha")); } ecomm_clientes user = clientes.getUsuarioCadastrado(model.email); if (user == null) { ViewBag.Menssagem = "O e-mail informado não consta em nossa base de dados"; //ModelState.AddModelError("", "O e-mail informado não consta em nossa base de dados"); return(PartialView("RecuperarSenhaConf")); } else { SetEmail email = new SetEmail(); StringBuilder sb = new StringBuilder(); sb.Append("<div style='font-size:14px; border: 1px solid #ccc; margin:5% 10% 0 10%;'>"); sb.Append("<div style='background-color: #ccc;padding: 10px 10px 10px 10px; color:#fff; height: 60px; margin-bottom:15px;'><img src='http://" + Settings.Default.LinkSite + "/e-commerce/Imagens/Template/logo_small.png' /></div>"); sb.Append("<div style='padding: 5px 5px 5px 5px;'>"); sb.Append("<table>"); sb.Append("<tr><td> "); sb.Append("<strong>Usuário:</strong> " + user.LOGIN); sb.Append("</td></tr>"); sb.Append("<tr><td>"); sb.Append("<strong>Senha:</strong> " + Crypt.DecriptografaM(user.PASSAWORD)); sb.Append("</td></tr>"); sb.Append("</table>"); sb.Append("<div style='font-size:12px; color:#000; margin-bottom:15px;'>"); sb.Append("<p>Estas são suas informações para login em nossa loja, caso não tenha feito a solicitação das mesmas, " + "pedimos que se dirija ao site e efetue a troca de sua senha.</p>"); sb.Append("</div>"); sb.Append("</div>"); sb.Append("<div style='background-color: #ccc;text-align:center; vertical-align:central;font-size:10px;padding: 10px; color:#000; height:30px;'>"); sb.Append("<p>Esta é uma mensagem automática. Por favor, não a responda.</p>"); sb.Append("</div>"); sb.Append("</div>"); ViewBag.Menssagem = email.SendEmail(user.LOGIN, "Recuperação de Senha", sb.ToString(), Settings.Default.EmailContato, Settings.Default.SenhaEmail); } return(PartialView("RecuperarSenhaConf")); }
public ActionResult RecuperarSenha(long cpf, string codigo) { RecuperarSenha r = new RecuperarSenha(); r.cpf = cpf; r.codigo = codigo; r.recuperaSenha(); if (r.recuperaSenha() == true) { BancoDeDados b = new BancoDeDados(); b.atualizaSenha(); return(RedirectToAction("Login", "Login")); } else { TempData["Msg"] = "Erro ao recuperar a senha"; return(RedirectToAction("RecuperarSenha", "RecuperarSenha")); } }
public HttpResponseMessage RecuperarSenha(RecuperarSenhaViewModel model) { try { if (model == null) { return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Campos Inválidos", "text/plain")); } if (ModelState.IsValid) { var user = _UserRepo.GetByEmail(model.Email); if (user == null) { return(Request.CreateResponse(HttpStatusCode.NotAcceptable, "Email Inexistente", "text/plain")); } else { var recSenha = new RecuperarSenha { Token = Guid.NewGuid().ToString(), DataCadastro = DateTime.UtcNow, Usuario_Id = user.Id, Utilizado = false }; _RecuperarSenhaRepo.Add(recSenha); var domainName = Request.RequestUri.Scheme + "://" + Request.RequestUri.Authority; var envioEmail = new EnvioEmail(_ServerConfigRepo); envioEmail.EmailRecuperarSenha(domainName, recSenha.Token, user.Email); return(Request.CreateResponse(HttpStatusCode.OK)); } } var errorObj = ModelStateErrors.DisplayModelStateError(ModelState); return(Request.CreateResponse(HttpStatusCode.NotAcceptable, errorObj, "text/plain")); } catch (Exception ex) { return(Request.CreateResponse(HttpStatusCode.InternalServerError, ex.Message)); } }
public ActionResult RecuperarSenha(string email, string button, string codigo, string senha, string confirmarsenha) { string Senha = "^(?=.*[0-9].*[0-9])(?=.*[A-Z])(?=.*[@#$%^&+=])(?=\\S+$).{8,}$"; if (button == "enviar") { int codigoUsu; codigoUsu = usuarioServices.GeraCodigo(); Usuario usu = db.Usuario.Where(t => t.Email == email).ToList().FirstOrDefault(); if (usu == null) { ModelState.AddModelError("", "O email informado não está cadastrado em nossa base."); ViewBag.Email = "active"; ViewBag.Trocar = ""; return(View()); } else { RecuperarSenha rec = new RecuperarSenha { SenhaId = 0, UsuarioId = usu.UsuarioId, Vencimento = DateTime.Now.AddDays(1), Valido = true, Codigo = codigoUsu }; if (ModelState.IsValid) { db.RecuperarSenha.Add(rec); db.SaveChanges(); TempData["MSG"] = Funcoes.EnviarEmail(usu.Email, "RYS - Recuperar Senha", "<div style= 'background:rgb(245,245,245); width:760px; padding-bottom:30px '>" + " <h1 style= 'margin:0px; padding:16px 30px '>"+ " <a href='# '><img src='https://i.imgur.com/tF57D8G.png' alt=''></a>" + " </h1>"+ " <div style= 'padding:0px 30px '>"+ " <img src='https://imagizer.imageshack.com/v2/700x280q90/923/T6Lqa5.jpg' alt= '' style= 'vertical-align:top 'width= '700' height= '280'>"+ " </div>"+ " <div style= 'background:rgb(255,255,255); padding:48px 30px 47px; margin:0px 30px 0px; width:640px; '>"+ " <div style='color: rgb(0, 0, 0); line-height: 16px; padding-bottom: 17px; font-family: verdana, serif, 'EmojiFont '; font-size: 14px;'> "+ " <br /> "+ " Aqui vai o código pra você mudar sua senha:"+ " </div>"+ " <div style='padding: 19px 20px; border: 1px solid rgb(234, 234, 234); color: rgb(150, 150, 150); line-height: 20px; font-family: verdana, serif, 'EmojiFont '; font-size: 13px;'> "+ codigoUsu.ToString() + " </div>"+ " <div style='color: rgb(0, 0, 0); line-height: 16px; padding-top: 17px; font-family: verdana, serif, 'EmojiFont '; font-size: 14px;'> "+ " Agora é só entrar lá no rate your show e digitar esse código. Depois você cria a nova senha e tá feito"+ " </div>"+ " <div style='color: rgb(150, 150, 150); padding-top: 27px; font-family: verdana, serif, 'EmojiFont '; font-size: 13px;'>"+ " Esse e-mail foi enviado por <a href= ' ' style= 'text-decoration: none; color: rgb(255, 94, 58); '>RATE YOUR SHOW</a>."+ " </div>"+ " </div>"+ " </div>"); TempData["MSG"] = "success|E-mail enviado com sucesso"; } ViewBag.Email = ""; ViewBag.Trocar = "active"; return(View()); } } else { ViewBag.Email = ""; ViewBag.Trocar = "active"; int codigoUsu = Convert.ToInt32(codigo); RecuperarSenha rec = db.RecuperarSenha.Where(t => t.Codigo == codigoUsu).ToList().FirstOrDefault(); if (rec == null) { ModelState.AddModelError("", "Código inválido."); return(View()); } else { Usuario usu = db.Usuario.Find(rec.UsuarioId); if (!Regex.IsMatch(senha, Senha)) { ModelState.AddModelError("", "A senha do usuário deve conter no minimo 8 caractéres, caractéres especiais, 1 número e 1 letra maiúscula"); } if (confirmarsenha != senha) { ModelState.AddModelError("", "Senhas não conhecidem."); return(View()); } usu.Senha = crp.CriptografaSHA512(senha); if (rec.Vencimento < DateTime.Now || rec.Valido == false) { ModelState.AddModelError("", "Código expirado."); return(View()); } rec.Valido = false; if (ModelState.IsValid) { db.Entry(rec).State = EntityState.Modified; db.SaveChanges(); db.Entry(usu).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Cadastro", "Home")); } return(View()); } } }
private void lbEsqSenha_Click(object sender, EventArgs e) { RecuperarSenha tela = new RecuperarSenha(); tela.ShowDialog(); }