public ActionResult Acesso(string ReturnUrl, string chaveurl)
        {
            Session.Abandon();
            AcessoVM acesso = new AcessoVM();

            if (chaveurl != null)
            {
                List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key);

                int idSolicitacao = 0;
                int travaLogin    = 0;
                int tipoCadastro  = 0;
                int idContratante = 0;
                Int32.TryParse(param.First(p => p.Name == "SolicitacaoID").Value, out idSolicitacao);
                Int32.TryParse(param.First(p => p.Name == "TravaLogin").Value, out travaLogin);
                Int32.TryParse(param.First(p => p.Name == "tipocadastro").Value, out tipoCadastro);
                Int32.TryParse(param.First(p => p.Name == "idContratante").Value, out idContratante);
                string login = param.First(p => p.Name == "Login").Value;

                acesso.SolicitacaoId = idSolicitacao;
                acesso.TravaLogin    = travaLogin;
                acesso.Login         = login;

                if ((int)EnumTipoCadastroNovoUsuario.PreCadastrado == tipoCadastro)
                {
                    acesso.TipoCadastroNovoUsuario = EnumTipoCadastroNovoUsuario.PreCadastrado;
                    acesso.ContratanteId           = idContratante;
                }
            }
            acesso.ReturnUrl = ReturnUrl;

            return(View(acesso));
        }
        public ActionResult Index(string ReturnUrl, string chaveurl)
        {
            Session.Abandon();
            AcessoVM acesso = new AcessoVM();

            if (chaveurl != null)
            {
                List <ParametroCriptografia> param = Cripto.DescriptografarUrl(chaveurl, Key);

                int travaLogin = 0;
                Int32.TryParse(param.First(p => p.Name == "TravaLogin").Value, out travaLogin);
                string login = param.First(p => p.Name == "Login").Value;

                acesso.TravaLogin = travaLogin;
                acesso.Login      = login;

                ViewBag.ExibeModalAcesso = true;
            }
            else
            {
                ViewBag.ExibeModalAcesso = false;
            }

            acesso.ReturnUrl = ReturnUrl;
            acesso.chaveUrl  = chaveurl;
            return(View(acesso));
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public ActionResult EsqueceuSenha()
        {
            AcessoVM acesso = new AcessoVM();

            ViewBag.DisplayForm    = "";
            ViewBag.DisplaySucesso = "display: none;";

            return(View(acesso));
        }
Beispiel #4
0
        public IActionResult Validate(AcessoVM acessoVM)
        {
            var aluno = _bancoContexto.Usuario.Include(u => u.Situacoes).ToList().Find(a => a.RM == acessoVM.RM);

            if (aluno == default(Usuario))
            {
                return(NotFound(new { message = "Usuario não encontrado!" }));
            }
            var status = aluno.Situacoes.LastOrDefault(s => s.DataInicio.Date <= DateTime.Now.Date && s.DataFim.Date >= DateTime.Now.Date);

            if (status == default(Status))
            {
                return(NotFound(new { message = "Permissão de saida não configurada!" }));
            }
            return(Ok(new AcessoValidateResponse
            {
                Descricao = status.Descricao
            }));
        }
        public ActionResult EsqueceuSenha(AcessoVM model)
        {
            ModelState.Remove("Email");
            ModelState.Remove("Senha");
            ViewBag.DisplayForm    = "";
            ViewBag.DisplaySucesso = "display: none;";

            if (ModelState.IsValid)
            {
                Usuario usuario = _usuarioService.BuscarPorLogin(model.Login);
                if (usuario != null)
                {
                    // ARMAZENA CHAVE DE TROCA
                    string chave = Path.GetRandomFileName().Replace(".", "");
                    usuario.TROCAR_SENHA = chave;
                    _usuarioService.AlterarUsuario(usuario);

                    // CRIPTOGRAFA A URL QUE SERA ENVIADA AO USUÁRIO

                    string url = Url.Action("TrocaSenhaEsqueceu", "Home", new { chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuario.ID, chave), Key) }, Request.Url.Scheme);

                    EmailWebForLink mensagemEmail = new EmailWebForLink(usuario.EMAIL);
                    mensagemEmail.EsquecerSenha(url);

                    _metodosGerais.EnviarEmail(mensagemEmail);

                    ViewBag.DisplayForm    = "display: none;";
                    ViewBag.DisplaySucesso = "";
                }
                else
                {
                    ModelState.AddModelError("Email", "E-mail não encontrado!");
                }
            }

            return(View(model));
        }
Beispiel #6
0
 public AdesaoCriacaoVM()
 {
     Planos           = new List <AdesaoPlanoVM>();
     ExibeModalAcesso = false;
     Acesso           = new AcessoVM();
 }
        public ActionResult Acesso(AcessoVM model)
        {
            string chave = Path.GetRandomFileName().Replace(".", "");

            try
            {
                var usuarioLogado = _usuarioService.BuscarPorLogin(model.Login);

                //Valida Usuário Existe
                if (usuarioLogado == null)
                {
                    Log.Info("Usuário inválido!");
                    FinalizarAcesso();
                    ModelState.AddModelError("", "Usuário inválido!");
                }

                if (ModelState.IsValid)
                {
                    ProcessoLoginDTO processoLogin = _processoLoginService.ExecutarLogin(model.Login, model.Senha);
                    if (usuarioLogado.ATIVO)
                    {
                        if (Acessar(model.Login, model.Senha))
                        {
                            if (model.TipoCadastroNovoUsuario == EnumTipoCadastroNovoUsuario.PreCadastrado)
                            {
                                return(RedirectToAction("PopularValidarUsuarioSenha", "PreCadastro", new
                                {
                                    area = "Externo",
                                    chaveurl = Cripto.Criptografar(string.Format("idContratante={0}&cnpj={1}&senha={2}",
                                                                                 model.ContratanteId, model.Login, model.Senha), Key),
                                    returnUrl = model.ReturnUrl
                                }));
                            }
                            if (usuarioLogado.CONTRATANTE_ID == null) //Se for Fornecedor vá pra essa página
                            {
                                if (model.SolicitacaoId == null)
                                {
                                    var pjpf = _pjPfService.BuscarIdFornecedorPorCnpj(model.Login);

                                    if (pjpf == 0)
                                    {
                                        model.SolicitacaoId = _solicitacaoCadastroFornecedorService.BuscarIdSolicitacaoPorCnpj(model.Login);
                                    }
                                    else
                                    {
                                        model.FornecedorId = pjpf;
                                    }
                                }
                                return(RedirectToActionPermanent("FichaCadastral", "Documento", new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&FornecedorID={1}&ContratanteID=0", model.SolicitacaoId, model.FornecedorId), Key)
                                }));
                            }
                            if (usuarioLogado.PRIMEIRO_ACESSO == true)
                            {
                                usuarioLogado.TROCAR_SENHA = chave;
                                _usuarioService.AlterarUsuario(usuarioLogado);
                                return(RedirectToAction("TrocaSenhaEsqueceu", "Home",
                                                        new
                                {
                                    chaveurl = Cripto.Criptografar(string.Format("id={0}&chave={1}", usuarioLogado.ID, chave), Key)
                                }));
                            }
                            if (string.IsNullOrEmpty(model.ReturnUrl))
                            {
                                return(RedirectToAction("Index", "HomeAdmin"));
                            }
                            else
                            {
                                string[] url = model.ReturnUrl.Split(new char[] { '/' });
                                if (url.Length > 0)
                                {
                                    return(Redirect(model.ReturnUrl));
                                }
                                else
                                {
                                    return(RedirectToAction("Index", "HomeAdmin"));
                                }
                            }
                        }
                    }
                    else
                    {
                        Log.Error(processoLogin.Mensagem);
                        ModelState.AddModelError("", processoLogin.Mensagem);
                    }
                }
                Log.Info("Erro ao tentar logar!");
                FinalizarAcesso();
                ModelState.AddModelError("", "Erro ao tentar logar confirme login e senha de seu usuário");
                return(View(model));
            }
            catch (EntityException ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Ocorreu um erro de conexão.");
                FinalizarAcesso();
                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", ex.Message);
                FinalizarAcesso();
                return(View(model));
            }
        }
        public ActionResult Index(AcessoVM model)
        {
            try
            {
                if (model.chaveUrl != null)
                {
                    List <ParametroCriptografia> param = Cripto.DescriptografarUrl(model.chaveUrl, Key);
                    int idSolicitacao;
                    int travaLogin = 0;
                    Int32.TryParse(param.First(p => p.Name == "SolicitacaoID").Value, out idSolicitacao);
                    Int32.TryParse(param.First(p => p.Name == "TravaLogin").Value, out travaLogin);
                    string login = param.First(p => p.Name == "Login").Value;

                    model.SolicitacaoId = idSolicitacao;
                    model.TravaLogin    = travaLogin;
                    model.Login         = login;
                }
                Usuario usuarioLogado = _usuarioService.BuscarPorLogin(model.Login);
                //Valida Usuário Existe
                if (usuarioLogado == null)
                {
                    Log.Info("Usuário inválido!");
                    FinalizarAcesso();
                    ModelState.AddModelError("", "Usuário inválido!");
                }

                if (ModelState.IsValid)
                {
                    ViewBag.ExibeModalAcesso = true;
                    ValidarBloqueioTempo(usuarioLogado);

                    if (Acessar(model.Login, model.Senha))
                    {
                        _usuarioService.ZerarTentativasLogin(usuarioLogado);
                        if (usuarioLogado.CONTRATANTE_ID == null) //Se for Fornecedor vá pra essa página
                        {
                            if (model.SolicitacaoId == null)
                            {
                                int pjpf = _pjPfService.BuscarIdFornecedorPorCnpj(model.Login);

                                if (pjpf == 0)
                                {
                                    model.SolicitacaoId = _solicitacaoCadastroFornecedorService.BuscarIdSolicitacaoPorCnpj(model.Login);
                                }
                                else
                                {
                                    model.FornecedorId = pjpf;
                                }
                            }
                            return(Redirect(Url.Action("FichaCadastral", "Documento", new
                            {
                                chaveurl = Cripto.Criptografar(string.Format("SolicitacaoID={0}&FornecedorID={1}&ContratanteID=0", model.SolicitacaoId, model.FornecedorId), Key)
                            }, Request.Url.Scheme)));
                        }
                        if (usuarioLogado != null && usuarioLogado.PRIMEIRO_ACESSO == true)
                        {
                            return(ExecutarPrimeiroAcesso(usuarioLogado));
                        }

                        if (Convert.ToBoolean(ConfigurationManager.AppSettings["GravaLogAcesso"]))
                        {
                            _acessoLogService.GravarLogAcesso(usuarioLogado.ID, PegaIPAcesso(), PegaNavegadorAcesso());
                        }

                        if (string.IsNullOrEmpty(model.ReturnUrl))
                        {
                            return(RedirectToAction("Index", "HomeAdmin"));
                        }
                        else
                        {
                            string[] url = model.ReturnUrl.Split(new char[] { '/' });
                            if (url.Length == 2)
                            {
                                return(RedirectToAction(url[2], url[1]));
                            }
                            else
                            {
                                return(RedirectToAction("Index", "HomeAdmin"));
                            }
                        }
                    }
                    ViewBag.ExibeModalAcesso = false;

                    var ativo = usuarioLogado != null && (usuarioLogado.ATIVO != false);
                    if (ativo)
                    {
                        _usuarioService.ContabilizarErroLogin(usuarioLogado);
                        ModelState.AddModelError("", "Login ou Senha Inválido!");
                        ViewBag.ExibeModalAcesso = true;
                    }
                    else
                    {
                        ModelState.AddModelError("", "Usuário bloqueado!");
                        ViewBag.ExibeModalAcesso = true;
                    }
                }
                else
                {
                    ViewBag.ExibeModalAcesso = true;
                }

                return(View(model));
            }
            catch (EntityException ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Ocorreu um erro de conexão.");
                FinalizarAcesso();
                ViewBag.ExibeModalAcesso = true;
                return(View(model));
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", ex.Message);
                FinalizarAcesso();
                ViewBag.ExibeModalAcesso = true;
                return(View(model));
            }
        }