public String bloquear(string usuario_tb)
        {
            ManejadorXML manej = new ManejadorXML();

            usuario_tb = usuario_tb.Trim();

            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);

            //check the IsNewSession value, this will tell us if the session has been reset
            if (Session.IsNewSession)
            {
                //now we know it's a new session, so we check to see if a cookie is present
                string cookie = HttpContext.Current.Request.Headers["Cookie"];
                //now we determine if there is a cookie does it contains what we're looking for
                if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    //since it's a new session but a ASP.Net cookie exist we know
                    //the session has expired so we need to redirect them
                    System.Diagnostics.Debug.WriteLine("Error 503");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("503"));
                }
            }

            Usuario usuarioInput = new Usuario(usuario_tb);

            System.Diagnostics.Debug.WriteLine("Error 3");
            //Invocar método que coloque bloqueado = 1
            usuarioInput.setBloqueadoTrue(usuario_tb);
            //Creamos un hilo que espera a que
            //que transcurra el tiempo para poner en 0 nuevamente el campo
            //bloqueado
            Thread th1 = new Thread(new ThreadStart(usuarioInput.esperaDesbloquear));
            th1.Start();
            return manej.codificarXmlAEnviar(manej.envioMensajeError("3"));
        }
        public String InicioSesion(string usuario_tb, string clave_tb)
        {
            ManejadorXML manej = new ManejadorXML();

            usuario_tb = usuario_tb.Trim();
            clave_tb = clave_tb.Trim();

            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);

            //check the IsNewSession value, this will tell us if the session has been reset
            if (Session.IsNewSession)
            {
                //now we know it's a new session, so we check to see if a cookie is present
                string cookie = HttpContext.Current.Request.Headers["Cookie"];
                //now we determine if there is a cookie does it contains what we're looking for
                if ((null != cookie) && (cookie.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    //since it's a new session but a ASP.Net cookie exist we know
                    //the session has expired so we need to redirect them
                    System.Diagnostics.Debug.WriteLine("Error 502");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("502"));
                }
                else
                {
                    Session.Add("Loggedin", "");
                }
            }

            //Creamos una instancia de usuario con los datos que fueron introducidos por pantalla (Pantalla de Inicio de Sesión)
            Usuario usuarioInput = new Usuario(usuario_tb, clave_tb);

            //Verificamos si la base de datos está disponible
            usuarioInput.DisponibleBD();
            if (usuarioInput.Disponible == false)
                return manej.codificarXmlAEnviar(manej.envioMensajeError("600"));

            //Verificamos si el usuario ingresado existe en la base de datos
            usuarioInput.ExisteUsuario();
            if (usuarioInput.Valido == false)
            {
                System.Diagnostics.Debug.WriteLine("Error 1");
                return manej.codificarXmlAEnviar(manej.envioMensajeError("1"));
            }
            else
            {
                //Verificamos si el usuario está bloqueado
                if (usuarioInput.estaBloqueado(usuario_tb))
                {
                    System.Diagnostics.Debug.WriteLine("Error 4");
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("4"));
                }
                else
                {
                    //Como el usuario es válido creamos su count de intentos fallidos (en caso de que no exista)
                    //if (Session[usuario_tb] == null)
                      //  Session.Add(usuario_tb, 0);
                    //System.Diagnostics.Debug.WriteLine("Count de " + usuario_tb + " " + (int)Session[usuario_tb]);

                    //Verificamos que se introdujo bien la contraseña
                    String codigo = usuarioInput.ConsultarUsuario();
                    if (usuarioInput.Valido == false)
                    {
                        //Session[usuario_tb] = (int)Session[usuario_tb] + 1;
                        //if ((int)Session[usuario_tb] == 3)
                        /*{
                            System.Diagnostics.Debug.WriteLine("Error 3");
                            //Invocar método que coloque bloqueado = 1
                            usuarioInput.setBloqueadoTrue(usuario_tb);
                            //Creamos un hilo que espera a que
                            //que transcurra el tiempo para poner en 0 nuevamente el campo
                            //bloqueado
                            Thread th1 = new Thread(new ThreadStart(usuarioInput.esperaDesbloquear));
                            th1.Start();
                            //Reiniciamos el count
                            Session.Remove(usuario_tb);
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("3"));
                        }
                        else
                        {*/
                            System.Diagnostics.Debug.WriteLine("Error 0");
                            return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                        //}
                    }
                    else
                    {
                        //Los datos introducidos son correctos. Inicio de sesión exitoso
                        usuarioInput.ConsultarCodigosPago(codigo);
                        usuarioInput.ConsultarFechaAdmin();

                        Session["Loggedin"] = "yes";
                        Session.Add("UltimaConsulta", DateTime.Now);
                        Session["codigosPago"] = usuarioInput.CodigosPago;
                        return manej.codificarXmlAEnviar(manej.creacionRespuestaInicioSesion(usuarioInput));
                    }
                }
            }

            /*VERSION VIEJA
            ManejadorXML manej = new ManejadorXML();
            DataSet ds = new DataSet();

            usuario_tb = usuario_tb.Trim();
            clave_tb = clave_tb.Trim();

            //LOGIN USUARIO//
            System.Diagnostics.Debug.WriteLine("ESTE es el SessionID " + Session.SessionID);
            Session.Add("Loggedin", "");

            //Creamos una instancia de usuario con los datos que fueron introducidos por pantalla (Pantalla de Inicio de Sesión)
            Usuario usuarioInput = new Usuario(usuario_tb, clave_tb);

            //Verificamos si el usuario ingresado existe en la base de datos
            ds = usuarioInput.ExisteUsuario(usuarioInput);
            if (ds.Tables[0].Rows.Count == 0)
            {
                //Los datos no corresponden a un usuario de la Base de datos
                return manej.codificarXmlAEnviar(manej.envioMensajeError("1"));
            }
            else
            {
                ds = usuarioInput.ConsultarUsuario(usuarioInput);
                if (ds.Tables[0].Rows.Count == 0)
                {
                    //La contraseña es incorrecta
                    return manej.codificarXmlAEnviar(manej.envioMensajeError("0"));
                }
                else
                {
                    //Los datos introducidos son correctos
                    //Del DataSet devuelto tomo los datos del usuario
                    string nombre = ds.Tables[0].Rows[0].ItemArray.ElementAt(0).ToString();
                    string apellido = ds.Tables[0].Rows[0].ItemArray.ElementAt(1).ToString();
                    string codigo = ds.Tables[0].Rows[0].ItemArray.ElementAt(2).ToString();
                    string nombreUsuario = ds.Tables[0].Rows[0].ItemArray.ElementAt(3).ToString();
                    Session["Loggedin"] = "yes";
                    return manej.codificarXmlAEnviar(manej.creacionRespuestaInicioSesion(nombre, apellido, codigo, nombreUsuario));
                }
            }*/
        }