ASP.NET - Se sobrescribe si se loguean varios usuarios a la vez

 
Vista:

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Nicolas (24 intervenciones) el 12/03/2019 21:35:14
Hola, tengo una aplicación que al ingresar verifica usuario y contraseña, y para eso hay una tabla y al resultado lo guardo en una sesión, PERO EL PROBLEMA se da que si se loguea un segundo usuario, el primero se sobrescribe por este.
Es obvio que estoy manejando mal el tema de las sesiones.
Algun ejemplo para manejar varios usuarios a la vez con sesiones diferentes. gracias


CODIGO DE LA PAGINA DE LOGUEEO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
protected void btnEntrar_Click(object sender, EventArgs e)
{
    Session["LoginCobranza"] = "0";
 
    if (txtUsuario.Text != string.Empty && txtContraseña.Text != string.Empty)
    {
 
        UsuarioE oUsu = new UsuarioE();
        oUsu.Usuario = txtUsuario.Text;
        oUsu.Contraseña = txtContraseña.Text;
 
        UsuarioE oUsuResult = UsuarioN.ValidarUsuario(oUsu);
        oUsuResult.NombreCompleto = oUsuResult.Apellido + " " + oUsuResult.Nombre;
 
        if (oUsuResult.Usuario == txtUsuario.Text && oUsuResult.Contraseña == txtContraseña.Text)
        {
 
            UsuarioActivoGlobal.UsuarioActivo = oUsuResult;
            txtAviso.Text = "";
            //Guardo si se logueo el cliente para saber si le dejo entrar a la pagina Soporte
            Session["LoginCobranza"] = "1";
            Session["UsuarioCobranzaWeb"] = txtUsuario.Text; //Guardo el usuario para usarlo mas adelante
            Response.Redirect("Cobranza.aspx");
 
        }
        else
        {
            txtAviso.Text = "El usuario o la contraseña no son correctos";
            txtUsuario.Focus();
        }
    }
    else
    {
        txtAviso.Text = "Debe ingresar un usuario y contraseña válida";
        txtUsuario.Focus();
    }
}



CODIGO DE LA PAGINA DONDE DEBE ENTRAR SI EL USUARIO Y CONTRASEÑA SON CORRECTOS

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
protected void Page_Load(object sender, EventArgs e)
{
 
        if (!this.IsPostBack)
        {
            //Valido si el usuario esta logueado
            if (Session["LoginCobranza"] == "0" || Session["LoginCobranza"] == null)
            {
                    Response.Redirect("LoginCobranza.aspx");
            }
 
 
            List<PermisosE> lista =   ObtenerListaPermisosUsuario();
            if (!EsAdministrador) //Si es administrador le doy acceso a todo el menu (no valido los permisos)
            {
                ValidarPermisos(lista);
            }
            else
            {
                PermisosAdministrador(true);
            }
            Vaciar();
            CargarCombo();
        }
    //}
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 47
Ha aumentado 1 puesto en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Agustin (7 intervenciones) el 12/03/2019 22:02:01
Webforms? Que no habían cerrado ya ese antro?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Nicolas (24 intervenciones) el 12/03/2019 22:04:20
Yo sigo programando con vb net 2010. Seria de ayuda si tuvieras algun codigo o solución al problema..gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 19
Ha aumentado 1 puesto en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Yamil Bracho (1136 intervenciones) el 12/03/2019 22:21:59
jejej tambien pasa en las "modernas" version de .NET, como lo puede comprabar recientemente pero el rollo era el manejod e una variable static en ambiente multiusuario.

Nicolas, chequea mas bien isAuthenticated. Mira la pagina https://www.aspsnippets.com/Articles/Check-whether-User-is-Logged-in-or-not-in-ASPNet-using-C-and-VBNet.aspx
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Nicolas nicolasreal24@hotmail.com (24 intervenciones) el 12/03/2019 22:43:08
muchas gracias...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 94
Plata
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Cesar (31 intervenciones) el 12/03/2019 22:33:07
Hola.

Eso se soluciona modificando tu Web.Config. y agrega enableKernelOutputCache="false", en la etiqueta httpRuntime, dentro de system.web.

Ejemplo:

1
2
3
4
5
<system.web>
    <compilation debug="true" targetFramework="4.5.2" />
    <httpRuntime targetFramework="4.5.2" enableKernelOutputCache="false" />
    <globalization culture="es-MX" uiCulture="es-MX" />
</system.web>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Nicolas (24 intervenciones) el 12/03/2019 22:45:29
Disculpa la ignorancia. al modificar y agregar lo que me decis, que función cumple para el uso de multiusuarios y el código de logueo de mi pagina quedaria tal cual o debo modificar algo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 94
Plata
Ha mantenido su posición en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Cesar (31 intervenciones) el 12/03/2019 22:55:50
Hola.

Tu codigo de logueo queda igual.

El problema que tienes, es un error que se ha venido arrastrando desde la epoca de ASP 3.0 (el objeto Session existe desde esos tiempos):

https://forums.asp.net/t/1270923.aspx?Serious+problem+with+Session+variable+session+is+mixing+with+other+user+s+session+

Solo agrega dicho atributo a tu Web.config.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Nicolas (24 intervenciones) el 13/03/2019 01:58:43
Muchas gracias...........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 14
Ha disminuido su posición en 5 puestos en ASP.NET (en relación al último mes)
Gráfica de ASP.NET

Se sobrescribe si se loguean varios usuarios a la vez

Publicado por Hector hectorgarciamendez.hgm@gmail.com (10 intervenciones) el 13/03/2019 01:41:23
Si no quieres, puedes validar tus autenticaciones desde el lenguaje y tu BD
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar