private string cambiarPregunta(string username, string password)
    {
        string sForm = "";

        PonerMensaje("");
        string respuesta = "";

        if (username != "" && password != "")
        {
            string sUsuario  = "FOR_" + username;
            string sPassword = password.ToUpper();
            //int idFicepi = GetIdFicepi(sUsuario, sPassword);
            SUPER.BLL.FORANEO oFor = SUPER.BLL.FORANEO.GetByNif(null, sUsuario);
            if (oFor.t001_idficepi != -1 && oFor.t314_accesohabilitado && oFor.t080_passw == password)
            {
                //sForm = @"~/../Inicio/Pregunta/Default.aspx?f=" + oFor.t001_idficepi.ToString();
                sForm = @"../Forastero/Pregunta/Default.aspx?f=" + oFor.t001_idficepi.ToString();
                //Response.Redirect(sForm, true);
                respuesta = sForm + "@#@OK";
            }
            else
            {
                if (oFor.t001_idficepi != -1 && !oFor.t314_accesohabilitado)
                {
                    respuesta = "Tu usuario se encuentra bloqueado. Ponte en contacto con tu responsable.";
                }

                if (oFor.t080_passw != password)
                {
                    respuesta = "Contraseña incorrecta";
                }
                //else
                //    respuesta = "Usuario no válido";
            }
        }
        else
        {
            respuesta = "Debes indicar usuario y contraseña.";
        }

        return("cambiarPregunta@#@" + respuesta);
    }
    protected string cambiarPass(string username, string sPassword)
    {
        string respuesta = "";
        string sForm     = @"../Forastero/CambioPassw/Default.aspx?u=" + username + "&p=" + Encriptar(sPassword);

        PonerMensaje("");
        //Response.Redirect(sForm, true);
        //string sForm = @"~/../Inicio/CambioPassw/Default.aspx?u=" + username;
        if (username != "")
        {
            string            sUsuario = "FOR_" + username;
            SUPER.BLL.FORANEO oFor     = SUPER.BLL.FORANEO.GetByNif(null, sUsuario);
            if (oFor.t001_idficepi != -1 && oFor.t314_accesohabilitado)
            {
                //Response.Redirect(sForm, true);
                respuesta = sForm + "@#@OK";
            }
            else
            {
                if (oFor.t001_idficepi != -1 && !oFor.t314_accesohabilitado)
                {
                    //PonerMensaje("Su usuario se encuentra bloqueado. Póngase en contacto con su supervisor");
                    respuesta = "Tu usuario se encuentra bloqueado. Ponte en contacto con tu responsable.";
                }
                else
                {
                    //PonerMensaje("Usuario no válido");
                    respuesta = "Usuario no válido.";
                }
            }
        }
        else
        {
            //PonerMensaje("Debe indicar usuario");
            respuesta = "Debes indicar un usuario";
        }


        return("cambiarPass@#@" + respuesta);
    }
        public static FORANEO ConsultaSelect(int t001_idficepi)
        {
            FORANEO       o  = new FORANEO();
            SqlDataReader dr = DAL.FORANEO.ConsultaSelect(null, t001_idficepi);

            if (dr.Read())
            {
                o.t001_idficepi = t001_idficepi;
                //DATOS PERSONALES
                if (dr["t314_idusuario"] != DBNull.Value)
                {
                    o.t314_idusuario = int.Parse(dr["t314_idusuario"].ToString());
                }
                if (dr["Profesional"] != DBNull.Value)
                {
                    o.NombreCompleto = dr["Profesional"].ToString().ToUpper();
                }
                if (dr["t001_apellido1"] != DBNull.Value)
                {
                    o.t001_apellido1 = dr["t001_apellido1"].ToString().ToUpper();
                }
                if (dr["t001_apellido2"] != DBNull.Value)
                {
                    o.t001_apellido2 = dr["t001_apellido2"].ToString().ToUpper();
                }
                if (dr["t001_nombre"] != DBNull.Value)
                {
                    o.t001_nombre = dr["t001_nombre"].ToString().ToUpper();
                }
                if (dr["t001_cip"] != DBNull.Value)
                {
                    o.t001_cip = dr["t001_cip"].ToString().ToUpper();
                }
                if (dr["t001_exttel"] != DBNull.Value)
                {
                    o.t001_exttel = dr["t001_exttel"].ToString();
                }
                if (dr["t001_sexo"] != DBNull.Value)
                {
                    o.t001_sexo = dr["t001_sexo"].ToString();
                }
                if (dr["t001_email"] != DBNull.Value)
                {
                    o.t001_email = dr["t001_email"].ToString();
                }
                //DADTOS EMPRESARIALES
                if (dr["Promotor"] != DBNull.Value)
                {
                    o.NombreCompletoProm = dr["Promotor"].ToString().ToUpper();
                }
                if (dr["t066_descal"] != DBNull.Value)
                {
                    o.t066_descal = dr["t066_descal"].ToString();
                }
                if (dr["t066_idcal"] != DBNull.Value)
                {
                    o.t066_idcal = int.Parse(dr["t066_idcal"].ToString());
                }
                if (dr["Njorlabcal"] != DBNull.Value)
                {
                    o.Njorlabcal = int.Parse(dr["Njorlabcal"].ToString());
                }
                if (dr["t001_fecalta"] != DBNull.Value)
                {
                    o.t001_fecalta = DateTime.Parse(dr["t001_fecalta"].ToString());
                }
                if (dr["t080_fultacc"] != DBNull.Value)
                {
                    o.t080_fultacc = DateTime.Parse(dr["t080_fultacc"].ToString());
                }
                //CREDENCIALES
                if (dr["t080_passw"] != DBNull.Value)
                {
                    o.t080_passw = dr["t080_passw"].ToString();
                }
                if (dr["t080_pregunta"] != DBNull.Value)
                {
                    o.t080_pregunta = dr["t080_pregunta"].ToString();
                }
                if (dr["t080_respuesta"] != DBNull.Value)
                {
                    o.t080_respuesta = dr["t080_respuesta"].ToString();
                }
                if (dr["t080_facep"] != DBNull.Value)
                {
                    o.t080_facep = DateTime.Parse(dr["t080_facep"].ToString());
                }
                if (dr["t080_falta"] != DBNull.Value)
                {
                    o.t080_falta = DateTime.Parse(dr["t080_falta"].ToString());
                }
                //Datos del usuario SUPER
                if (dr["t314_accesohabilitado"] != DBNull.Value)
                {
                    o.t314_accesohabilitado = (bool)dr["t314_accesohabilitado"];
                }
                if (dr["costejornada"] != DBNull.Value)
                {
                    o.t314_costejornada = decimal.Parse(dr["costejornada"].ToString());
                }
                if (dr["costehora"] != DBNull.Value)
                {
                    o.t314_costehora = decimal.Parse(dr["costehora"].ToString());
                }

                if (dr["t422_idmoneda"] != DBNull.Value)
                {
                    o.t422_idmoneda = dr["t422_idmoneda"].ToString();
                }
                if (dr["t422_denominacion"] != DBNull.Value)
                {
                    o.MonedaCoste = dr["t422_denominacion"].ToString();
                }

                if (dr["t314_alias"] != DBNull.Value)
                {
                    o.t314_alias = dr["t314_alias"].ToString();
                }
                if (dr["t314_falta"] != DBNull.Value)
                {
                    o.t314_falta = DateTime.Parse(dr["t314_falta"].ToString());
                }
                if (dr["t314_fbaja"] != DBNull.Value)
                {
                    o.t314_fbaja = DateTime.Parse(dr["t314_fbaja"].ToString());
                }
                if (dr["t314_calculoJA"] != DBNull.Value)
                {
                    o.t314_calculoJA = (bool)dr["t314_calculoJA"];
                }
                if (dr["t314_controlhuecos"] != DBNull.Value)
                {
                    o.t314_controlhuecos = (bool)dr["t314_controlhuecos"];
                }
                if (dr["t314_mailiap"] != DBNull.Value)
                {
                    o.t314_mailiap = (bool)dr["t314_mailiap"];
                }
                if (dr["fultImpIAP"] != DBNull.Value)
                {
                    o.fultImpIAP = DateTime.Parse(dr["fultImpIAP"].ToString());
                }
            }
            else
            {
                dr.Close();
                dr.Dispose();
                //throw (new NullReferenceException("No se ha obtenido ningun dato de Experiencia profesional"));
                o.t001_idficepi = -1;
            }

            dr.Close();
            dr.Dispose();
            return(o);
        }
        public static List <FORANEO> GetLista(string sNif, string t001_ape1, string t001_ape2, string t001_nom)
        {
            List <FORANEO> listaForaneos = null;
            SqlDataReader  dr;

            if (sNif != "")
            {
                dr = SUPER.DAL.FORANEO.GetByNif(null, sNif);
            }
            else
            {
                dr = SUPER.DAL.FORANEO.GetByNombre(null, t001_ape1, t001_ape2, t001_nom);
            }
            while (dr.Read())
            {
                FORANEO o = new FORANEO();
                if (dr["t001_idficepi"] != DBNull.Value)
                {
                    o.t001_idficepi = int.Parse(dr["t001_idficepi"].ToString());
                }
                if (dr["t001_cip"] != DBNull.Value)
                {
                    o.t001_cip = dr["t001_cip"].ToString();
                }
                //if (dr["t314_idusuario"] != DBNull.Value)
                //    o.t314_idusuario = int.Parse(dr["t314_idusuario"].ToString());
                if (dr["t001_tiporecurso"] != DBNull.Value)
                {
                    o.t001_tiporecurso = dr["t001_tiporecurso"].ToString();
                }
                if (dr["t001_sexo"] != DBNull.Value)
                {
                    o.t001_sexo = dr["t001_sexo"].ToString();
                }
                if (dr["t001_apellido1"] != DBNull.Value)
                {
                    o.t001_apellido1 = dr["t001_apellido1"].ToString().ToUpper();
                }
                if (dr["t001_apellido2"] != DBNull.Value)
                {
                    o.t001_apellido2 = dr["t001_apellido2"].ToString().ToUpper();
                }
                if (dr["t001_nombre"] != DBNull.Value)
                {
                    o.t001_nombre = dr["t001_nombre"].ToString().ToUpper();
                }
                if (dr["Profesional"] != DBNull.Value)
                {
                    o.NombreCompleto = dr["Profesional"].ToString().ToUpper();
                }
                if (dr["t001_alias"] != DBNull.Value)
                {
                    o.t001_alias = dr["t001_alias"].ToString().ToUpper();
                }
                if (dr["t001_email"] != DBNull.Value)
                {
                    o.t001_email = dr["t001_email"].ToString();
                }
                if (dr["t066_idcal"] != DBNull.Value)
                {
                    o.t066_idcal = (int)dr["t066_idcal"];
                }
                if (dr["t001_fecalta"] != DBNull.Value)
                {
                    o.t001_fecalta = DateTime.Parse(dr["t001_fecalta"].ToString());
                }
                if (dr["t001_fecbaja"] != DBNull.Value)
                {
                    o.t001_fecbaja = DateTime.Parse(dr["t001_fecbaja"].ToString());
                }
                else
                {
                    o.t001_fecbaja = null;
                }

                listaForaneos.Add(o);
            }
            dr.Close();
            dr.Dispose();

            return(listaForaneos);
        }
        public static string Grabar(string strDatos)
        {
            int            idFicepi = -1, idUser = -1;
            string         sAccion = "", sNif = "", sNombre = "", sAlias = "", sTipoError = "", sPassw = "", sNifIni = "", sEmail = "";
            SqlConnection  oConn = null;
            SqlTransaction tr;
            //string sElementosInsertados = "";
            //string sDenominacionDelete = "";
            string    sResul      = "";
            bool      bHayError   = false;
            ArrayList aListCorreo = new ArrayList();

            //SUPER.Capa_Negocio.cLog miLog = new SUPER.Capa_Negocio.cLog();

            string[] aForaneo = Regex.Split(strDatos, "///");
            foreach (string oForaneo in aForaneo)
            {
                sAlias     = "";
                sTipoError = "";
                sPassw     = "";
                sNifIni    = "";
                sEmail     = "";
                string[] aValores = Regex.Split(oForaneo, "##");
                sAccion = aValores[0];
                //0. Opcion BD. "I", "U", "D"
                switch (aValores[0])
                {
                case "I":
                    #region Comprobaciones
                    sNifIni = SUPER.Capa_Negocio.Utilidades.unescape(aValores[1]).ToUpper();
                    sNif    = "FOR_" + sNifIni;
                    #region Compruebo que no haya un NIF de un no foráneo igual de alta (sin prefijo)
                    FORANEO oFor3 = FORANEO.GetByNif(null, sNifIni);
                    if (oFor3.t001_idficepi != -1)
                    {
                        if (oFor3.t001_fecbaja == null)
                        {
                            sTipoError = "E6@#@" + oFor3.NombreCompleto;
                        }
                        else
                        {
                            if (oFor3.t001_fecbaja > DateTime.Now)
                            {
                                sTipoError = "E6@#@" + oFor3.NombreCompleto;
                            }
                            //else
                            //    "El profesional está de baja -> sigo el resto del circuito";
                        }
                    }
                    #endregion
                    if (sTipoError == "")
                    {
                        #region Compruebo que no exista el NIF y que no haya otro nombre igual
                        FORANEO oFor = FORANEO.GetByNif(null, sNif);
                        //Compruebo que no exista otro profesional con los mismos apellidos y nombre
                        FORANEO oFor2 = FORANEO.GetByNombre(null, SUPER.Capa_Negocio.Utilidades.unescape(aValores[2]),
                                                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[3]),
                                                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[4]));
                        if (oFor.t001_idficepi != -1)
                        {
                            #region El NIF del foráneo (incluido su prefijo) ya existe
                            idFicepi = oFor.t001_idficepi;
                            if (oFor2.t001_idficepi != -1) //Y hay un profesional con el mismo nombre y apellido -> no hay que hacer el alta
                            {                              //Compruebo si hay usuario SUPER de alta
                                SqlDataReader dr = SUPER.DAL.FORANEO.GetUsuariosSuper(null, idFicepi);
                                if (!dr.Read())
                                {
                                    sTipoError = "E1";    //"El profesional existe en FICEPI pero no en SUPER"
                                }
                                else
                                {
                                    if (dr["t314_fbaja"].ToString() == "")
                                    {
                                        sTipoError = "E2";    //"El profesional existe en FICEPI y está de alta en SUPER"
                                    }
                                    else
                                    {
                                        if (DateTime.Parse(dr["t314_fbaja"].ToString()) > DateTime.Now)
                                        {
                                            sTipoError = "E3";    //"El profesional existe en FICEPI y va a ser dado de baja en SUPER"
                                        }
                                        else
                                        {
                                            sTipoError = "E4";    //"El profesional existe en FICEPI pero no hay usuario de alta en SUPER"
                                        }
                                    }
                                }
                            }
                            else
                            {    //Coincide el NIF pero no el nombre
                                sTipoError = "E5@#@" + oFor.NombreCompleto;
                            }
                            #endregion
                        }
                        else                               //El NIF del nuevo no existe
                        {
                            if (oFor2.t001_idficepi != -1) //Pero hay un usuario con el mismo nombre y apellido -> ponemos alias
                            {
                                sAlias = sNifIni;
                            }
                        }
                        #endregion
                    }
                    #endregion
                    #region Grabacion
                    if (sTipoError == "")
                    {
                        #region Abrir conexión y transacción
                        try
                        {
                            oConn = SUPER.Capa_Negocio.Conexion.Abrir();
                            tr    = SUPER.Capa_Negocio.Conexion.AbrirTransaccion(oConn);
                        }
                        catch (Exception ex)
                        {
                            throw (new Exception("Error al abrir la conexion", ex));
                        }
                        #endregion
                        try
                        {
                            sEmail   = SUPER.Capa_Negocio.Utilidades.unescape(aValores[6]);
                            idFicepi = DAL.FORANEO.Insertar(tr, sNif,
                                                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[2]), //Ap1
                                                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[3]), //Ap2
                                                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[4]), //Nombre
                                                            "",                                                  //Alias
                                                            aValores[5],                                         //Sexo
                                                            sEmail, int.Parse(aValores[7]),                      //Calendario
                                                            DateTime.Parse(aValores[8]));                        //fecha de alta);

                            sPassw  = SUPER.Capa_Negocio.Utilidades.GenerarPassw(8).ToUpper();
                            sNombre = SUPER.Capa_Negocio.Utilidades.unescape(aValores[2]).ToUpper() + " " +
                                      SUPER.Capa_Negocio.Utilidades.unescape(aValores[3]).ToUpper() + ", " +
                                      SUPER.Capa_Negocio.Utilidades.unescape(aValores[4]).ToUpper();
                            idUser = InsertarEnSuper(tr, idFicepi, sAlias, DateTime.Parse(aValores[8]));
                            InsertarEnFicepiForaneo(tr, idFicepi, sPassw);
                            EncolarCorreo(aListCorreo, sNif, sNombre, sEmail, sNifIni, sPassw);
                            //para usar la gestión de miebros de ASP.NET
                            //miLog.put("Antes de CrearMiembro. sPassw= " + sPassw);
                            //string sAux= SUPER.Capa_Negocio.Miembros.CrearMiembro(sNifIni, sPassw, sEmail);
                            //miLog.put("CrearMiembro = " + sAux);
                            //////////////////////////////////////////////
                            SUPER.Capa_Negocio.Conexion.CommitTransaccion(tr);
                        }
                        catch (Exception e1)
                        {
                            bHayError  = true;
                            sTipoError = e1.Message;
                            SUPER.Capa_Negocio.Conexion.CerrarTransaccion(tr);
                        }
                        finally
                        {
                            SUPER.Capa_Negocio.Conexion.Cerrar(oConn);
                        }
                    }
                    else
                    {
                        bHayError = true;
                        break;
                    }
                    #endregion
                    break;

                case "U":
                    #region Update
                    idFicepi = int.Parse(aValores[0]);
                    //DAL.FORANEO.Updatear(null, idFicepi, SUPER.Capa_Negocio.Utilidades.unescape(aValores[2]),
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[3]),
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[4]),
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[5]),
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[6]),
                    //                            DateTime.Parse(aValores[7]), null, aValores[8],
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[9]),
                    //                            SUPER.Capa_Negocio.Utilidades.unescape(aValores[10]),
                    //                            int.Parse(aValores[12]));
                    #endregion
                    break;

                case "D":
                    //sDenominacionDelete = aValores[3];
                    //DAL.FORANEO.ModificarBaja(null, int.Parse(aValores[1]), DateTime.Parse(aValores[2]));
                    break;
                }
            }
            //sResul = sElementosInsertados;
            if (bHayError)
            {
                sResul = "Error@#@" + sTipoError;
            }
            else
            {
                sResul = "OK@#@" + idUser.ToString() + "@#@" + sNombre;
                EnviarCorreos(aListCorreo);
            }

            return(sResul);
        }
        /// <summary>
        /// Busca si existe en FICEPI un profesional con ese nombre y apellidos
        /// </summary>
        /// <param name="tr"></param>
        /// <param name="t001_cip"></param>
        /// <returns></returns>
        private static FORANEO GetByNombre(SqlTransaction tr, string t001_ape1, string t001_ape2, string t001_nom)
        {
            string        t001_apellido1 = t001_ape1;
            string        t001_apellido2 = t001_ape2;
            string        t001_nombre    = t001_nom;
            FORANEO       o  = new FORANEO();
            SqlDataReader dr = SUPER.DAL.FORANEO.GetByNombre(tr, t001_apellido1, t001_apellido2, t001_nombre);

            if (dr.Read())
            {
                if (dr["t001_cip"] != DBNull.Value)
                {
                    o.t001_cip = dr["t001_cip"].ToString().ToUpper();
                }
                if (dr["t001_idficepi"] != DBNull.Value)
                {
                    o.t001_idficepi = int.Parse(dr["t001_idficepi"].ToString());
                }
                //if (dr["t314_idusuario"] != DBNull.Value)
                //    o.t314_idusuario = int.Parse(dr["t314_idusuario"].ToString());
                if (dr["t001_sexo"] != DBNull.Value)
                {
                    o.t001_sexo = dr["t001_sexo"].ToString();
                }
                if (dr["t001_tiporecurso"] != DBNull.Value)
                {
                    o.t001_tiporecurso = dr["t001_tiporecurso"].ToString();
                }
                o.t001_apellido1 = t001_apellido1.ToUpper();
                o.t001_apellido2 = t001_apellido2.ToUpper();
                o.t001_nombre    = t001_nombre.ToUpper();
                if (dr["Profesional"] != DBNull.Value)
                {
                    o.NombreCompleto = dr["Profesional"].ToString().ToUpper();
                }
                if (dr["t001_alias"] != DBNull.Value)
                {
                    o.t001_alias = dr["t001_alias"].ToString().ToUpper();
                }
                if (dr["t001_email"] != DBNull.Value)
                {
                    o.t001_email = dr["t001_email"].ToString();
                }
                if (dr["t001_exttel"] != DBNull.Value)
                {
                    o.t001_exttel = dr["t001_exttel"].ToString();
                }
                if (dr["t066_idcal"] != DBNull.Value)
                {
                    o.t066_idcal = (int)dr["t066_idcal"];
                }
                if (dr["t001_fecalta"] != DBNull.Value)
                {
                    o.t001_fecalta = DateTime.Parse(dr["t001_fecalta"].ToString());
                }
                if (dr["t001_fecbaja"] != DBNull.Value)
                {
                    o.t001_fecbaja = DateTime.Parse(dr["t001_fecbaja"].ToString());
                }
                else
                {
                    o.t001_fecbaja = null;
                }

                if (dr["t080_passw"] != DBNull.Value)
                {
                    o.t080_passw = SUPER.BLL.Seguridad.DesEncriptar(dr["t080_passw"].ToString());
                }
                if (dr["t314_accesohabilitado"] != DBNull.Value)
                {
                    o.t314_accesohabilitado = (bool)dr["t314_accesohabilitado"];
                }
                if (dr["t080_nintentos"] != DBNull.Value)
                {
                    o.t080_nintentos = byte.Parse(dr["t080_nintentos"].ToString());
                }
            }
            else
            {
                dr.Close();
                dr.Dispose();
                //throw (new NullReferenceException("No se ha obtenido ningun dato de Experiencia profesional"));
                o.t001_idficepi = -1;
            }

            dr.Close();
            dr.Dispose();
            return(o);
        }
    private string Autenticacion(string UserName, string Password, int numIntentos)
    {
        string sResul    = "";
        string sIntentos = "";

        //SUPER.Capa_Negocio.cLog miLog = new SUPER.Capa_Negocio.cLog();
        Session["MULTIUSUARIO"]             = false;
        Session["MostrarMensajeBienvenida"] = false;
        Session["MSGBIENVENIDA"]            = "";
        Session["BIENVENIDAMOSTRADA"]       = true;
        Session["TiempoMensajeBienvenida"]  = 0;

        PonerMensaje("");
        //miLog.put("Entro en Login1_Authenticate");
        SUPER.DAL.Log.Insertar("Entro en Login.aspx Autenticacion, UserName="******" Password="******" numIntentos=" + numIntentos.ToString());
        string sUsuario  = "FOR_" + UserName.ToUpper();
        string sPassword = Password.ToUpper();

        //if (ValidateUser(Login1.UserName, sPassword))
        if (sUsuario != "" && sPassword == "")
        {
            bool bValidado         = false;
            SUPER.BLL.FORANEO oFor = SUPER.BLL.FORANEO.GetByNif(null, sUsuario);
            if (oFor.t001_idficepi != -1)
            {
                bValidado = true;
            }

            sResul = "ComprobarUsuario@#@" + oFor.t001_idficepi + "@#@" + bValidado + "@#@" + sIntentos + "@#@" + oFor.t080_facep;
        }
        else if (ValidateUser(sUsuario, sPassword))
        {
            //miLog.put("Login1_Authenticate. Usuario validado");
            SUPER.BLL.FORANEO oFor = SUPER.BLL.FORANEO.GetByNif(null, sUsuario);
            if (oFor.t001_idficepi != -1)
            {
                //miLog.put("Usuario encontrado en FICEPI. oFor.t001_idficepi=" + oFor.t001_idficepi.ToString());
                if (!oFor.t314_accesohabilitado)
                {
                    //miLog.put("Usuario bloqueado");
                    //this.lblPregunta.Text = "Su usuario se encuentra bloqueado. Póngase en contacto con su responsable.";
                    //this.lblPregunta.Visible = true;
                    //FormsAuthentication.RedirectFromLoginPage(UserName, true);
                    //Response.Redirect("../Error.aspx?t=1", true);

                    string url = @"Error.aspx?t=1";
                    sResul = "Bloqueado@#@" + url;
                }
                //Fecha aceptación aviso legal
                else if (oFor.t080_facep == null || oFor.t080_pregunta == "" || oFor.t080_respuesta == "")
                {
                    int vez = 1;
                    Session["ua"] = oFor.t001_idficepi.ToString();
                    //string url = @"~/../Inicio/Pregunta/Default.aspx?f=" + oFor.t001_idficepi.ToString() + "&" + "VEZ=" + vez;
                    // Create a custom FormsAuthenticationTicket containing application specific data for the user.
                    string username     = oFor.t001_idficepi.ToString();
                    bool   isPersistent = false;
                    string userData     = "ApplicationSpecific data for this user.";
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(30),
                                                                                     isPersistent, userData, FormsAuthentication.FormsCookiePath);
                    // Encrypt the ticket.
                    string encTicket = FormsAuthentication.Encrypt(ticket);
                    // Create the cookie.
                    Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

                    string url = @"../Forastero/Pregunta/Default.aspx?f=" + oFor.t001_idficepi.ToString() + "&" + "VEZ=" + vez;
                    sResul = "PrimeraVez@#@" + url;
                }
                else
                {
                    bool bValidadoPass = true;
                    Session["ua"] = oFor.t001_idficepi.ToString();
                    //En explotacion
                    string url = @"/Capa_Presentacion/default.aspx";
                    //En desarrollo
                    //string url = @"../../default.aspx";
                    //string url = @"/FORASTERO/Capa_Presentacion/default.aspx";
                    if (SUPER.BLL.Log.logger.IsDebugEnabled)
                    {
                        SUPER.BLL.Log.logger.Debug("Login.aspx.cs->Autenticacion. url=" + url);
                    }

                    // Create a custom FormsAuthenticationTicket containing application specific data for the user.
                    string username     = oFor.t001_idficepi.ToString();
                    bool   isPersistent = false;
                    string userData     = "ApplicationSpecific data for this user.";
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, username, DateTime.Now, DateTime.Now.AddMinutes(30),
                                                                                     isPersistent, userData, FormsAuthentication.FormsCookiePath);
                    // Encrypt the ticket.
                    string encTicket = FormsAuthentication.Encrypt(ticket);
                    // Create the cookie.
                    Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));
                    //Response.Redirect("./Default.aspx");

                    sResul = "IniciarSesion@#@" + url + "@#@" + bValidadoPass + "@#@+" + sIntentos;
                    //FormsAuthentication.RedirectFromLoginPage(username, true);
                }
            }
        }
        else
        {
            return("IniciarSesion@#@" + sIntentos);
        }

        return(sResul);
    }