none
Eliiminar cookies RRS feed

  • Pregunta

  • Tengo un aplicativo que usa cookies, está construído con "ASP.NET Web Application (.NET Framework) / MVC" template.

    El tema es que cuando el usuario sale directamente del aplicativo presionando "x" en la pestaña del browser, al volver a ingresar al aplicativo, la sesión se queda activa, las cookies no se destruyen.

    En el archivo "Global.asax.cs" función "Session_Start" he colocado el siguiente código, a fin que me valide que si existe el cookie, sea expirada, pero no funciona.

    if (Request.Cookies[".nombreCookie"] != null)
    {
        var cookie = Request.Cookies[".nombreCookie"];
        var expiredCookie = new HttpCookie(cookie.Name)
        {
            Expires = DateTime.Now.AddDays(-1),
            Domain = cookie.Domain
        };
                    
        HttpContext.Current.Response.Cookies.Add(expiredCookie);
    }

    Por favor su ayuda que no sé como resolver el problema, ya he googleado y se mantiene.


    bgva

    miércoles, 8 de julio de 2020 18:31

Respuestas

Todas las respuestas

  • hola

    >>la sesión se queda activa, las cookies no se destruyen.

    la session es una cosa y las cookies es diferente

    si el usuario se queda autenticado puede ser porque cuando armas el token indicas que se persista, hay un parametro que defines para indicarlo quizas debas ponerlo en false

    pero deberias validar como es que estas implementando la autenticacion de la aplicacion, usas asp.net membership o Identity? o como es que se autentica el usuario

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 8 de julio de 2020 21:31
  • Buenos días Leandro.

    La aplicación utiliza IDENTITY.

    El botón salir "que si funciona" tiene el siguiente código:

            [AllowAnonymous]
            public ActionResult Finalizar()
            {
                var IdArea = 0;
                var cookiep = this.ControllerContext.HttpContext.Request.Cookies["coquie_01"];
                if (cookiep != null)
                {
                    IdArea = Convert.ToInt32(cookiep.Value);
                }
    
                if (User.Identity.IsAuthenticated)
                {
                    var Usuario = _repositorioUsuario.UsuarioporNombre(User.Identity.Name);
                    if (IdArea!=0)
                    {
                        var Area = _repositorioAreas.AreaPorId(IdArea);
                        var descripcion = Usuario.Usuario + " Finalizó sessión de Area: ";
                    }
    
                    Usuario.EnLinea = false;
                    Usuario.AccesosFallidos = 0;
                    Usuario.AreaActiva = 0;
                    _repositorioUsuario.ActualizarUsuario(Usuario);
                }
    
                ElimiarCookieAreaCliente();
                FormsAuthentication.SignOut();
    
                Session.Clear();
                Session.Abandon();
    
                return RedirectToAction("Index", "InicioSesion");
            }

    Pero cerrando directamente el TAB de la página o el browser, la sesión queda activa.


    bgva

    jueves, 9 de julio de 2020 14:28
  • Hola bgva

    Revisa esto, tanto la segunda como la tercera solución.

    Logout when closing the browser or tab

    Saludos

    viernes, 10 de julio de 2020 15:37
  • Hola. Puedes mostrar el código cuando realizas Login y generas el ticket de autenticación? 

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

    viernes, 10 de julio de 2020 22:04
    Moderador