none
Datos de sesión erroneos RRS feed

  • Pregunta

  • Hola, tengo un problema con los datos de mi sesión, por alguna razón las sesiones toman los valores de otras sesiones diferentes y activas en el momento de la petición, por ejemplo:

    al tomar el valor de la variable 'iduser' que es el nick del usuario para mostrarlo en pantalla este me toma el de otro usuario en sesión en otro lugar.

    Ejemplo mas explicativo:

    El usuario1 en Colombia ingresa a la sesión y al ingresar a una pagina esta hace una petición al servidor para que le muestre los datos de este, el otro lugar X ejemplo Venezuela, el otro usuario ingresa, y este puede ver los datos de usuario1. Es decir, al tomar el valor de la variable, no toma la del usuario2, si no la del usuario1.

    esto me genera un fallo de seguridad, ya que los datos de cualquier usuario puede ser visto por cualquier otro usuario que este en sesión en el momento, he buscado muchos foros, pero por ningún lado he visto que a otra persona le pase esto igual.

    Por favor si alguien me puede ayudar se lo agradecería mucho.

    jueves, 26 de marzo de 2015 14:33

Respuestas

  • No tendrás configurado en algún componente alguna variable Static??

    Eso hace que el contenido de dicha variable se comparta en toda la aplicación y sesiones web.

    A mí esto me pasó en mis comienzos con ASP.NET. En definitiva, en un ambiente Web es Crítico el evitar el uso de variables static a menos que dichas variables sean para configurar algo del aplicativo  a nivel global etc.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos



    jueves, 26 de marzo de 2015 15:33
    Moderador

Todas las respuestas

  • Hola, ¿qué tipo de sesión estás utilizando? ¿Es un entorno distribuído? ¿Hay más de un servidor?
    jueves, 26 de marzo de 2015 14:42
  • No tendrás configurado en algún componente alguna variable Static??

    Eso hace que el contenido de dicha variable se comparta en toda la aplicación y sesiones web.

    A mí esto me pasó en mis comienzos con ASP.NET. En definitiva, en un ambiente Web es Crítico el evitar el uso de variables static a menos que dichas variables sean para configurar algo del aplicativo  a nivel global etc.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos



    jueves, 26 de marzo de 2015 15:33
    Moderador
  • No, solo un servidor
    jueves, 26 de marzo de 2015 18:01
  • Hola, si estoy utilizando algunas variables como static, seguro sera eso, muchas gracias.

    Pero ahora te consulto otra cosa, tengo los metodos static, para hacer metodos que pueda consumir desde el cliente con ajax, si le quito el atributo static, me genera algun inconveniente?

    jueves, 26 de marzo de 2015 18:03
  • >>No, solo un servidor

    no entendi que significa ?

    defines variables static ?

    usas el objeto Session ?


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de marzo de 2015 18:04
  • No tendrás configurado en algún componente alguna variable Static??

    Eso hace que el contenido de dicha variable se comparta en toda la aplicación y sesiones web.

    A mí esto me pasó en mis comienzos con ASP.NET. En definitiva, en un ambiente Web es Crítico el evitar el uso de variables static a menos que dichas variables sean para configurar algo del aplicativo  a nivel global etc.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos



    por ejemplo, este es un metodo que utilizo del lado del cliente.

    [System.Web.Services.WebMethod(EnableSession = true)]
        public static string proyecto()
        {
            string todo = "Logistics1.jpg|logo-logiseguridad.png|si|1";
            try
            {
                string fondo = HttpContext.Current.Request.Cookies["Settings"]["fondo"].ToString();
                string logo = HttpContext.Current.Request.Cookies["Settings"]["logo"].ToString();
                string cabecera = HttpContext.Current.Request.Cookies["Settings"]["cabecera"].ToString();
                string pp = HttpContext.Current.Session["pp"].ToString();
                todo = fondo + "|" + logo + "|" + cabecera + "|" + pp;
            }
            catch { }
            return todo;
        }

    jueves, 26 de marzo de 2015 18:13
  • eso no genera inconveniente... Inclusive es obligatorio para crear un webmethod. Lo malo son las variables que un usuario sobrescribe lo de otro

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    jueves, 26 de marzo de 2015 18:44
    Moderador