Exemple #1
0
        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;
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        //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;
     }
 }
Exemple #7
0
        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());
        }
Exemple #9
0
        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"));
        }
Exemple #10
0
        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());
                }
            }
        }
Exemple #13
0
        private void lbEsqSenha_Click(object sender, EventArgs e)
        {
            RecuperarSenha tela = new RecuperarSenha();

            tela.ShowDialog();
        }