Exemplo n.º 1
0
        public static bool validezUsuario(HttpRequest hr)
        {
            try
            {
                if ((hr.Cookies["token"] != null) && !string.IsNullOrEmpty(hr.Cookies["token"].Value) && hr.Cookies["token"].Value.Contains('I'))
                {
                    if (hr.Cookies["token"].Value.Contains('='))
                    {
                        string tokenUsuario = Utilities.tratarParam(hr.Cookies["token"].Value.Split('=')[1]);
                        if (Utilities.comprobarValidezUsuario(tokenUsuario) == 1)
                        {
                            int idUsuario = Convert.ToInt32(tokenUsuario.Split('I')[0]);
                            if (idUsuario > 0)
                            {
                                string    query = $@"SELECT TOP 1 * FROM Usuarios WHERE idUsuario = {idUsuario} AND token = '{Utilities.tratarParam(tokenUsuario)}'";
                                DataTable dt    = DatabaseConnection.executeNonQueryDT(query, CommandType.Text, ConnectionString.Lambiscadas);
                                if (dt.Rows.Count > 0)
                                {
                                    return(true);
                                }

                                //int rol = Convert.ToInt32(DatabaseConnection.executeScalar(query, CommandType.Text, ConnectionString.SomNautic));
                                //if(rol == 1) return true;
                            }
                        }
                    }
                    else
                    {
                        string tokenUsuario = Utilities.tratarParam(hr.Cookies["token"].Value);
                        if (Utilities.comprobarValidezUsuario(tokenUsuario) == 1)
                        {
                            int idUsuario = Convert.ToInt32(tokenUsuario.Split('I')[0]);
                            if (idUsuario > 0)
                            {
                                string    query = $@"SELECT TOP 1 * FROM Usuarios WHERE idUsuario = {idUsuario} AND token = '{Utilities.tratarParam(tokenUsuario)}'";
                                DataTable dt    = DatabaseConnection.executeNonQueryDT(query, CommandType.Text, ConnectionString.Lambiscadas);
                                if (dt.Rows.Count > 0)
                                {
                                    return(true);
                                }
                            }
                        }
                    }
                }
                else
                {
                    // En este caso tenemos el token por parámetro en la url
                    // y si hemos llegado a este punto es por que la cookie y la sesión no está creada
                    // La creamos

                    string tokenUsuario = Utilities.getParam(hr, "token");
                    if (Utilities.comprobarValidezUsuario(tokenUsuario) == 1)
                    {
                        int idUsuario = Convert.ToInt32(tokenUsuario.Split('I')[0]);
                        if (idUsuario > 0)
                        {
                            string query = $@"SELECT TOP 1 * FROM Usuarios WHERE idUsuario = {idUsuario} AND token = '{Utilities.tratarParam(tokenUsuario)}'";
                            int    rol   = Convert.ToInt32(DatabaseConnection.executeScalar(query, CommandType.Text, ConnectionString.Lambiscadas));
                            if (rol == 1)
                            {
                                Basico.crearCookie(tokenUsuario);
                                return(true);
                            }
                        }
                    }
                }

                return(false);
            }
            catch (Exception e)
            {
                return(false);
            }
        }