예제 #1
0
        //public string[] ObtenerFunciones()
        //{
        //    CNTSEntities db = new CNTSEntities();
        //    IdentityPersonalizado Ident = (IdentityPersonalizado)HttpContext.Current.User.Identity;
        //    if (Ident == null)
        //    {
        //        return null;
        //    }

        //    int id_usuario = Ident.Id_establecimiento;

        //    //Encontrar los roles que tiene el usuario
        //    string sql = "select id_rol from c_rol_usuario where id_usuario = " + id_usuario;
        //    var roles = db.Database.SqlQuery<int>(sql).ToArray();

        //    //Encontrar cada funcion que tienen los roles
        //    int[] funciones = new int[] { };
        //    IEnumerable<int> union = funciones;
        //    foreach (int rol in roles)
        //    {
        //        sql= "select id_funcion from c_funcion_rol where id_rol = " + rol;
        //        var fns = db.Database.SqlQuery<int>(sql).ToArray();
        //        union = union.Union(fns);
        //    }

        //    //Encontrar el nombre a partir de cada id

        //    funciones = union.ToArray();
        //    int nfunciones = funciones.Length;
        //    string[] resultado = new string[nfunciones];
        //    for (int i = 0; i < nfunciones; i++)
        //    {
        //        c_funcion c_funcion = db.c_funcion.Find(funciones[i]);
        //        resultado[i] = c_funcion.cl_funcion;
        //    }
        //    return resultado;
        //}

        //public string[] ObtenerFunciones(int id)
        //{
        //    CNTSEntities db = new CNTSEntities();

        //    int id_usuario = id;

        //    //Encontrar los roles que tiene el usuario
        //    string sql = "select id_rol from c_rol_usuario where id_usuario = " + id_usuario;
        //    var roles = db.Database.SqlQuery<int>(sql).ToArray();

        //    //Encontrar cada funcion que tienen los roles
        //    int[] funciones = new int[] { };
        //    IEnumerable<int> union = funciones;
        //    foreach (int rol in roles)
        //    {
        //        sql = "select id_funcion from c_funcion_rol where id_rol = " + rol;
        //        var fns = db.Database.SqlQuery<int>(sql).ToArray();
        //        union = union.Union(fns);
        //    }

        //    //Encontrar el nombre a partir de cada id

        //    funciones = union.ToArray();
        //    int nfunciones = funciones.Length;
        //    string[] resultado = new string[nfunciones];
        //    for (int i = 0; i < nfunciones; i++)
        //    {
        //        c_funcion c_funcion = db.c_funcion.Find(funciones[i]);
        //        resultado[i] = c_funcion.cl_funcion;
        //    }
        //    return resultado;
        //}

        public int IdFuncion(string _funcion)
        {
            CNTSEntities db      = new CNTSEntities();
            c_funcion    funcion = db.c_funcion.Where(f => f.cl_funcion == _funcion).First();

            return(funcion.id_funcion);
        }
예제 #2
0
        public string[] ObtenerFunciones(int id)
        {
            CNTSEntities db = new CNTSEntities();

            int id_usuario = id;

            //Encontrar los roles que tiene el usuario
            string sql   = "select id_rol from c_rol_usuario where id_usuario = " + id_usuario;
            var    roles = db.Database.SqlQuery <int>(sql).ToArray();

            //Encontrar cada funcion que tienen los roles
            int[]             funciones = new int[] { };
            IEnumerable <int> union     = funciones;

            foreach (int rol in roles)
            {
                sql = "select id_funcion from c_funcion_rol where id_rol = " + rol;
                var fns = db.Database.SqlQuery <int>(sql).ToArray();
                union = union.Union(fns);
            }

            //Encontrar el nombre a partir de cada id

            funciones = union.ToArray();
            int nfunciones = funciones.Length;

            string[] resultado = new string[nfunciones];
            for (int i = 0; i < nfunciones; i++)
            {
                c_funcion c_funcion = db.c_funcion.Find(funciones[i]);
                resultado[i] = c_funcion.cl_funcion;
            }
            return(resultado);
        }
예제 #3
0
 public override MembershipUser GetUser(string username, bool userIsOnline)
 {
     using (var db = new CNTSEntities())
     {
         var user = db.c_usuario.FirstOrDefault(o => o.email_principal == username);
         return(user == null ? null : new UsuarioMembership(user));
     }
 }
예제 #4
0
 public override MembershipUser GetUser(string username, bool userIsOnline)
 {
     using (var db = new CNTSEntities())
     {
         var user = db.c_establecimiento.FirstOrDefault(o => o.codigo_establecimiento == username);
         return(user == null ? null : new UsuarioMembership(user));
     }
 }
예제 #5
0
        public override bool ValidateUser(string username, string password)
        {
            using (var db = new CNTSEntities())
            {
                var pass = SeguridadUtilidades.SHA256Encripta(password);
                if (db.c_usuario.Any(o => o.password == pass && o.email_principal == username && (o.esta_activo || o.es_super_usuario)))
                {
                    var user         = db.c_usuario.Where(u => u.email_principal == username).First();
                    var UltimoAcceso = user.fe_ultimo_acceso ?? DateTime.Now;
                    HttpContext.Current.Application["UltimoAcceso"] = UltimoAcceso.ToString();
                    //modificar fecha de ultimo ingreso cuando un usuario entre al sistema
                    user.fe_ultimo_acceso = DateTime.Now;
                    db.SaveChanges();

                    //Si el usuario es super usuario, confirmar con true
                    if (user.es_super_usuario)
                    {
                        //modificar fecha de ultimo ingreso cuando un usuario entre al sistema
                        user.fe_ultimo_acceso = DateTime.Now;
                        db.SaveChanges();
                        return(true);
                    }
                    //si el usuario esta bloqueado, retornar false
                    if (user.id_estatus_usuario == 4)
                    {
                        return(false);
                    }

                    //Verificar si la (fecha actual - la fecha del ultimo acceso) > BloqueoNoIngreso
                    double segundosBNI = Utilidades.Utilidades.SegundosBloqueoNoIngreso();
                    if (segundosBNI > -1)
                    {
                        bool bloqueo = -((DateTime)user.fe_ultimo_acceso).Subtract(UltimoAcceso).TotalSeconds + segundosBNI <= 0;
                        //en caso de que el tiempo de desconexion sea mayor al tiempo de bloqueo por no ingreso
                        //El usuario pasara a estar inactivo y se mostrara un mensaje que le informará que debe comunicarse
                        //Con el administrador
                        if (bloqueo)
                        {
                            user.esta_activo        = false;
                            user.id_estatus_usuario = 4;
                            db.SaveChanges();
                            return(false);
                        }
                    }
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }