示例#1
0
        //private void Alterar(LogAcesso l)
        //{
        //    try
        //    {
        //        var strQuery = "UPDATE LogAcesso SET ";
        //        strQuery += "Nome = @p1, IdTipo = @p2 ";
        //        strQuery += string.Format("WHERE IdMarca = {0} ", l.IdMarca);
        //        AbrirConexao();
        //        Cmd = new MySqlCommand(strQuery, minhaConexao);
        //        Cmd.Parameters.AddWithValue("@p1", l.Nome);
        //        Cmd.Parameters.AddWithValue("@p2", l.Quantidade);
        //        Cmd.ExecuteNonQuery();

        //    }
        //    catch (Exception)
        //    {
        //        throw;
        //    }
        //    finally
        //    {
        //        FecharConexao();
        //    }
        //}
        public LogAcesso Listar(string pagina, string dataInicio, string dataFim)
        {
            try
            {
                AbrirConexao();
                var strQuery = "select COUNT(a.Id) as Total from LogAcesso as a where ";
                strQuery += "a.DataDeAcesso BETWEEN '" + dataInicio + "' and '" + dataFim + "' and a.Pagina = '" + pagina + "'";
                Cmd       = new MySqlCommand
                {
                    CommandText = strQuery,
                    CommandType = CommandType.Text,
                    Connection  = minhaConexao
                };
                Dr = Cmd.ExecuteReader();
                LogAcesso log = new LogAcesso();
                while (Dr.Read())
                {
                    log.Quantidade = Convert.ToInt32(Dr["Total"]);
                }

                return(log);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                FecharConexao();
            }
        }
示例#2
0
        private void GravarLogAcesso(string hostName, string login, string tipo)
        {
            try
            {
                var connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
                System.Data.SqlClient.SqlConnectionStringBuilder connectionStringBuilder = new System.Data.SqlClient.SqlConnectionStringBuilder(connectionString);

                LogAcesso log = new LogAcesso()
                {
                    Data          = DateTime.Now,
                    HostName      = hostName.ToUpper(),
                    LoginUsuario  = login.ToUpper(),
                    NomeBaseDados = connectionStringBuilder.InitialCatalog.ToUpper(),
                    Servidor      = connectionStringBuilder.DataSource.ToUpper(),
                    Sistema       = "SIGIMWEB",
                    Tipo          = tipo.ToUpper(),
                    Versao        = System.Reflection.Assembly.GetCallingAssembly().GetName().Version.ToString()
                };

                logAcessoRepository.Inserir(log);
                logAcessoRepository.UnitOfWork.Commit();
            }
            catch (Exception exception)
            {
                QueueExeptionMessages(exception);
            }
        }
示例#3
0
        public void AdicionarLogAcesso(string chatid, string id)
        {
            var where = new PredicateGroup {
                Operator = GroupOperator.And, Predicates = new List <IPredicate>()
            };
            where.Predicates.Add(Predicates.Field <LogAcesso>(f => f.AspNetUserID, Operator.Eq, id));
            where.Predicates.Add(Predicates.Field <LogAcesso>(f => f.valido, Operator.Eq, true));
            var lstServAcesso = _logAcessoServico.ObterPor(where);

            foreach (var x in lstServAcesso)
            {
                if (!x.valido)
                {
                    continue;
                }
                x.valido = false;
                _logAcessoServico.Atualizar(x);
            }

            var logAcessoEntity = new LogAcesso
            {
                token        = chatid,
                criadoEm     = DateTime.Now,
                valido       = true,
                ultimoPing   = DateTime.Now,
                AspNetUserID = id
            };

            _logAcessoServico.Adicionar(logAcessoEntity);
        }
        public ActionResult Autenticar(Usuario usuario)
        {
            FormsAuthenticationTicket authenticationTicket = new FormsAuthenticationTicket(usuario.Login, true, 100000);
            string     encryptTicket = FormsAuthentication.Encrypt(authenticationTicket);
            HttpCookie authCookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encryptTicket);

            Session["User"]           = usuario;
            Session["NomeUsuario"]    = usuario.Nome;
            Session["Menu"]           = usuario.Perfil.Menu.ToList();
            Session["SenhaIntegrada"] = usuario.SenhaIntegrada;

            /*Criando log de acesso*/
            LogAcessoService logAcessoService = new LogAcessoService();
            LogAcesso        logAcesso        = new LogAcesso();

            logAcesso.Data      = DateTime.Now;
            logAcesso.UsuarioId = usuario.Id;

            logAcessoService.Create(logAcesso);

            Response.Cookies.Clear();
            Response.Cookies.Add(authCookie);

            return(RedirectToAction("Index", "Home"));
        }
示例#5
0
        public void GravarLog(GravarLogAcessoInModel model)
        {
            model.DataLog      = DateTime.Today;
            model.SequenciaLog = 1;

            var logAcesso = GetLogAcesso(model);

            if (logAcesso.CodigoEmpresa <= 0)
            {
                logAcesso = new LogAcesso
                {
                    DataLog       = model.DataLog,
                    SequenciaLog  = model.SequenciaLog,
                    CodigoEmpresa = model.CodigoEmpresa,
                    CodigoUsuario = model.CodigoUsuario,
                    CodigoServico = model.CodigoServico,
                    CodigoMetodo  = model.CodigoMetodo,
                }
            }
            ;

            logAcesso.QtdeAcesso += 1;

            _logAcessoRepository.AddOrUpdate(logAcesso);
        }
    }
示例#6
0
        public bool create(LogAcesso logAcesso)
        {
            bool response = false;

            response = logAcessoRepository.create(logAcesso);

            return(response);
        }
示例#7
0
        public void ValidarLog(LogAcesso pLogAcesso)
        {
            this.ValidarInstancia(pLogAcesso);

            if (pLogAcesso.IDUsuario == 0)
            {
                throw new AcademicoException("Usuário não encontrado. Campo Obrigatório");
            }
        }
示例#8
0
        public List <LogAcesso> getAllLogAcesso()
        {
            List <LogAcesso> lista = new List <LogAcesso>();

            string sql = @"
                SELECT
                      L.idLogAcesso as Id
                    , L.hashOperacao
                    , L.sessionUUID
                    , L.ipAcesso
			        , L.isAtivo
                    , USR_INSERT.idUsuario as idUsuarioInclusao
                    , USR_INSERT.nome as nomeInclusao 
                    , CONVERT(VARCHAR(10), R.dataInclusao, 103) + ' ' + convert(VARCHAR(8), R.dataInclusao, 14) as dataInclusao
                FROM {0}.dbo.SYS_LOG_ACESSO L
				    INNER JOIN {0}.dbo.USUARIO USR_INSERT ON USR_INSERT.idUsuario = L.idUsuarioInclusao
                WHERE 
                    L.isAtivo = 1
                ORDER BY L.idLogAcesso ";

            SqlConnection conexao = null;

            try
            {
                conexao = dbUtil.openConnection();

                SqlCommand    sqlCommand = new SqlCommand(string.Format(sql, Core.BcrediDB, Core.SecurityDB), conexao);
                SqlDataReader dados      = dbUtil.getDados(sqlCommand);

                while (dados.Read())
                {
                    LogAcesso LogAcesso       = new LogAcesso();
                    Usuario   usuarioInclusao = new Usuario();
                    usuarioInclusao = usuarioInclusao.buildUsuario(Int32.Parse(dados["idUsuarioInclusao"].ToString()), dados["nomeInclusao"].ToString());

                    LogAcesso.setId(int.Parse(dados["Id"].ToString()));
                    LogAcesso.HashOperacao = dados["hashOperacao"].ToString().TrimEnd();
                    LogAcesso.SessionUUID  = dados["sessionUUID"].ToString().TrimEnd();
                    LogAcesso.IpAcesso     = dados["ipAcesso"].ToString().TrimEnd();
                    LogAcesso.setAtivo(dados["isAtivo"].ToString().Equals(Constantes.ATIVO));
                    LogAcesso.setUsuarioCriador(usuarioInclusao);
                    LogAcesso.setDataCriacao(Convert.ToDateTime(dados["dataInclusao"]));

                    lista.Add(LogAcesso);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao recuperar lista de log Acessos", ex);
            }
            finally
            {
                dbUtil.closeConnection(conexao);
            }

            return(lista);
        }
示例#9
0
        public static void RegistraLogDeAcesso(string pagina)
        {
            LogAcesso log = new LogAcesso();

            log.NomeMaquina = Environment.MachineName;

            log.Pagina     = pagina;
            log.Quantidade = 1;
            LogAcessoDal d = new LogAcessoDal();

            d.Inserir(log);
        }
示例#10
0
 public ActionResult Save(LogAcessoDto model)
 {
     if (ModelState.IsValid)
     {
         var LogAcesso = new LogAcesso();
         _LogAcesso.Save(model);
         return(RedirectToAction("List"));
     }
     else
     {
         return(RedirectToAction("Create", model));
     }
 }
示例#11
0
        // GET /autenticacao/
        public Autenticado Get(string token, int colecao = 0, int campo = 0, int orderBy = 0, int pageSize = 0, int pageNumber = 0)
        {
            // Abre nova conexão
            using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext())
            {
                try
                {
                    if (!Permissoes.Autenticado(token, _db))
                    {
                        throw new HttpResponseException(HttpStatusCode.Unauthorized);
                    }

                    //_db.Configuration.ProxyCreationEnabled = false;

                    var verify = (from v in _db.LoginAutenticacaos
                                  where v.token.Equals(token)
                                  select v
                                  ).Single();

                    if (verify == null)
                    {
                        throw new HttpResponseException(HttpStatusCode.InternalServerError);
                    }

                    #region Log de Acesso ao Sistema
                    api.Models.Object.Log log = new api.Models.Object.Log();
                    log.IdUser       = verify.idUsers;
                    log.IdController = 45;
                    log.IdMethod     = 51;
                    log.DtAcesso     = DateTime.Now;

                    LogAcesso.New(log);
                    #endregion

                    return(AcessoUsuarioLogado(token, verify.idUsers, _db));
                }
                catch (Exception e)
                {
                    if (e.Message.Equals("401"))
                    {
                        throw new HttpResponseException(HttpStatusCode.Unauthorized);
                    }
                    else
                    {
                        throw new HttpResponseException(HttpStatusCode.InternalServerError);
                    }
                }
            }
        }
        public async Task <LogAcessoOutput> CreateLogAcessoAsync(LogAcessoInput input)
        {
            var logAcesso = new LogAcesso()
            {
                Login         = input.Login,
                DataTentativa = DateTime.Now,
                Success       = input.Success,
                CreateDate    = DateTime.Now
            };

            _dbContext.LogAcessos.Add(logAcesso);

            return(new LogAcessoOutput()
            {
                Id = logAcesso.Id
            });
        }
示例#13
0
        void Session_End(object sender, EventArgs e)
        {
            /* Session timeout - Grava informações de LOGOUT no repositório */
            if (this.Session["usuario"] != null)
            {
                Usuario usuario     = (Usuario)this.Session["usuario"];
                string  sessionUUID = this.Session["sessionUUID"].ToString();

                LogAcesso logAcesso = new LogAcesso();
                logAcesso.HashOperacao   = Constantes.LOGOUT_TIMEOUT.ToString(); // LOGOUT_TIMEOUT
                logAcesso.SessionUUID    = sessionUUID;
                logAcesso.IpAcesso       = usuario.IpUltimoAcesso;
                logAcesso.UsuarioCriador = usuario;
                logAcessoService.create(logAcesso);

                Logger.getLogger().Info("LOGOUT (TIMEOUT) USUARIO " + usuario.Login.ToUpper() + " : " + System.DateTime.Now.ToString());
            }

            this.Session.RemoveAll();
        }
示例#14
0
        public List <LogAcesso> ListaLogAcesso(string idOrg)
        {
            List <LogAcesso> listaLog = new List <LogAcesso>();
            SqlDataReader    dataReader;

            using (SqlConnection Connection = new SqlConnection(conectStringData))
            {
                var _Command = new SqlCommand()
                {
                    Connection  = Connection,
                    CommandText = @"select L.id, L.idUsuario, L.idOrganizacao, L.dataLogin, A.userName NomeUsuario from LogAcesso as L
                                       inner join AspNetUsers as A on L.idUsuario = A.id where L.idOrganizacao ='" + idOrg + "' order by L.dataLogin desc",
                    CommandType = CommandType.Text
                };

                Connection.Open();
                dataReader = _Command.ExecuteReader();

                if (dataReader.HasRows)
                {
                    while (dataReader.Read())
                    {
                        LogAcesso log = new LogAcesso();

                        log.id            = dataReader["id"].ToString();
                        log.idOrganizacao = dataReader["idOrganizacao"].ToString();
                        log.idUsuario     = dataReader["idUsuario"].ToString();
                        log.NomeUsuario   = dataReader["NomeUsuario"].ToString();
                        log.dataLogin     = dataReader["dataLogin"].ToString();

                        listaLog.Add(log);
                    }
                }
                Connection.Close();
            };
            return(listaLog);
        }
        public IActionResult RegistrarNoSistema([FromBody] Usuario usuario)
        {
            try
            {
                if (!this.usuarioRepositorio.EmailCadastrado(usuario.Email))
                {
                    throw new Exception("Usuário não cadastrado!");
                }

                var acesso = new LogAcesso()
                {
                    Data      = DateTime.Now,
                    UsuarioId = usuario.Id
                };

                this.logAcessoRepositorio.Adicionar(acesso);

                return(Ok(new { retorno = "Usuário logado com sucesso!" }));
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }
示例#16
0
        public void Inserir(LogAcesso log)
        {
            try
            {
                var strQuery = "INSERT INTO LogAcesso";
                strQuery += "(NomeMaquina, DataDeAcesso, Quantidade, Pagina) ";
                strQuery += "VALUES(@p1,NOW(),@p2,@p3)";

                AbrirConexao();
                Cmd = new MySqlCommand(strQuery, minhaConexao);
                Cmd.Parameters.AddWithValue("@p1", log.NomeMaquina);
                Cmd.Parameters.AddWithValue("@p2", log.Quantidade);
                Cmd.Parameters.AddWithValue("@p3", log.Pagina);
                Cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                FecharConexao();
            }
        }
示例#17
0
 public LogAcessoController()
 {
     _LogAcesso = new LogAcesso();
 }
示例#18
0
        // POST /autenticacao
        public Autenticado Post(Models.Object.Login data)
        {
            try
            {
                if (ModelState.IsValid && WebSecurity.Login(data.usuario, data.senha, persistCookie: false))
                {
                    // Abre nova conexão
                    using (painel_taxservices_dbContext _db = new painel_taxservices_dbContext())
                    {
                        int userId = WebSecurity.GetUserId(data.usuario);

                        try
                        {
                            //_db.Configuration.ProxyCreationEnabled = false;


                            #region Log de Acesso ao Sistema
                            api.Models.Object.Log log = new api.Models.Object.Log();
                            log.IdUser       = userId;
                            log.IdController = 45;
                            log.IdMethod     = 50;
                            log.DtAcesso     = DateTime.Now;

                            LogAcesso.New(log);
                            #endregion

                            string token = "";



                            var verify = (from v in _db.LoginAutenticacaos
                                          where v.idUsers.Equals(userId)
                                          orderby v.idUsers
                                          select v
                                          ).FirstOrDefault();

                            if (verify == null)
                            {
                                token = Token.GetUniqueKey(data.usuario);
                                LoginAutenticacao la = new LoginAutenticacao();
                                la.idUsers    = userId;
                                la.token      = token;
                                la.dtValidade = DateTime.Now;
                                _db.LoginAutenticacaos.Add(la);
                                _db.SaveChanges();
                            }
                            else
                            {
                                token = verify.token;
                            }


                            return(AcessoUsuarioLogado(token, userId, _db));
                        }
                        catch (Exception e)
                        {
                            throw new HttpResponseException(HttpStatusCode.InternalServerError);
                        }
                    }
                }
                else
                {
                    throw new Exception("Usuário e/ou senha inválidos!" + (ModelState.IsValid ? "" : " (invalid model)"));
                }
            }
            catch (Exception e)
            {
                if (e.Message.Equals("401"))
                {
                    throw new HttpResponseException(HttpStatusCode.Unauthorized);
                }
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.InternalServerError, e.InnerException == null ? e.Message : e.InnerException.InnerException == null ? e.InnerException.Message : e.InnerException.InnerException.Message));
                //return Request.CreateResponse(HttpStatusCode.InternalServerError, e.Message);
            }
        }
示例#19
0
        public LogAcesso getLogAcessoById(int id, bool fecharConexao)
        {
            LogAcesso LogAcesso = new LogAcesso();

            string sql = @"
                SELECT
                      L.idLogAcesso as Id
                    , L.hashOperacao
                    , L.sessionUUID
                    , L.ipAcesso
			        , L.isAtivo
                    , USR_INSERT.idUsuario as idUsuarioInclusao
                    , USR_INSERT.nome as nomeInclusao 
                    , CONVERT(VARCHAR(10), R.dataInclusao, 103) + ' ' + convert(VARCHAR(8), R.dataInclusao, 14) as dataInclusao
                FROM {0}.dbo.SYS_LOG_ACESSO L
				    INNER JOIN {0}.dbo.USUARIO USR_INSERT ON USR_INSERT.idUsuario = L.idUsuarioInclusao
                WHERE 
                    L.isAtivo = 1
                    AND L.idLogAcesso = @id
                ORDER BY L.idLogAcesso ";

            SqlConnection conexao = null;

            try
            {
                conexao = dbUtil.openConnection();

                SqlCommand   sqlCommand  = new SqlCommand(string.Format(sql, Core.BcrediDB, Core.SecurityDB), conexao);
                SqlParameter parametroId = new SqlParameter("@id", System.Data.SqlDbType.Int);
                parametroId.Value = id;

                sqlCommand.Parameters.Add(parametroId);


                SqlDataReader dados = dbUtil.getDados(sqlCommand);

                while (dados.Read())
                {
                    Usuario usuarioInclusao = new Usuario();
                    usuarioInclusao = usuarioInclusao.buildUsuario(Int32.Parse(dados["idUsuarioInclusao"].ToString()), dados["nomeInclusao"].ToString());

                    LogAcesso.setId(int.Parse(dados["Id"].ToString()));
                    LogAcesso.HashOperacao = dados["hashOperacao"].ToString().TrimEnd();
                    LogAcesso.SessionUUID  = dados["sessionUUID"].ToString().TrimEnd();
                    LogAcesso.IpAcesso     = dados["ipAcesso"].ToString().TrimEnd();
                    LogAcesso.setAtivo(dados["isAtivo"].ToString().Equals(Constantes.ATIVO));
                    LogAcesso.setUsuarioCriador(usuarioInclusao);
                    LogAcesso.setDataCriacao(Convert.ToDateTime(dados["dataInclusao"]));
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Erro ao recuperar dados de log Acesso código " + id, ex);
            }
            finally
            {
                dbUtil.closeConnection(conexao, fecharConexao);
            }

            return(LogAcesso);
        }
示例#20
0
        public bool create(LogAcesso logAcesso)
        {
            bool response = false;

            int chaveGerada = 0;

            string sql = @"
                        INSERT INTO {0}.dbo.SYS_LOG_ACESSO (
                              hashOperacao
                            , sessionUUID
                            , ipAcesso
                            , idUsuarioInclusao)
                        OUTPUT INSERTED.idLogAcesso 
                        VALUES (
                             @hashOperacao
                            ,@sessionUUID
                            ,@ipAcesso
                            ,@idUsuarioInclusao
                        )
            ";

            SqlConnection  conexao   = null;
            SqlTransaction transacao = null;

            try
            {
                conexao   = dbUtil.openConnection();
                transacao = conexao.BeginTransaction(System.Data.IsolationLevel.ReadCommitted);

                SqlCommand sqlCommand = new SqlCommand(string.Format(sql, Core.BcrediDB, Core.SecurityDB), conexao, transacao);

                SqlParameter paramHashOperacao = new SqlParameter("@hashOperacao", System.Data.SqlDbType.VarChar);
                paramHashOperacao.Value = logAcesso.HashOperacao;

                // Exemplo: "07D3CCD4D9A6A9F3CF9CAD4F9A728F44"
                SqlParameter paramSessionUUID = new SqlParameter("@sessionUUID", System.Data.SqlDbType.VarChar);
                paramSessionUUID.Value = logAcesso.SessionUUID.ToUpper();

                SqlParameter paramIpAcesso = new SqlParameter("@ipAcesso", System.Data.SqlDbType.VarChar);
                paramIpAcesso.Value = logAcesso.IpAcesso;

                SqlParameter paramUsuarioInclusao = new SqlParameter("@idUsuarioInclusao", System.Data.SqlDbType.Int);
                paramUsuarioInclusao.Value = Core.UsuarioAtual != null ? Core.UsuarioAtual.Id : logAcesso.UsuarioCriador.Id;

                sqlCommand.Parameters.Add(paramHashOperacao);
                sqlCommand.Parameters.Add(paramSessionUUID);
                sqlCommand.Parameters.Add(paramIpAcesso);
                sqlCommand.Parameters.Add(paramUsuarioInclusao);

                chaveGerada = dbUtil.executeQuery(sqlCommand);
                transacao.Commit();

                if (chaveGerada > 0)
                {
                    response = true;
                }
            }
            catch (Exception ex)
            {
                transacao.Rollback();
                throw new Exception("Erro ao realizar tentativa de criação de novo registro de log Acesso", ex);
            }
            finally
            {
                dbUtil.closeConnection(conexao);
            }

            return(response);
        }
示例#21
0
 public void Salvar(LogAcesso pLogAcesso)
 {
     ValidarLog(pLogAcesso);
     pLogAcesso.DataAcesso = DateTime.Now;
     repositorio.Salvar(pLogAcesso);
 }