Saltar al contenido

¿Cuál es la diferencia entre Session.Abandon() y Session.Clear()

Nuestro grupo de redactores ha pasado mucho tiempo buscando respuestas a tu duda, te regalamos la solución por eso nuestro deseo es que te sea de mucha ayuda.

Solución:

Borrar – Elimina todo keys y valores de la colección de estado de sesión.

Abandonar: elimina todos los objetos almacenados en una sesión. Si no llama explícitamente al método Abandon, el servidor elimina estos objetos y destruye la sesión cuando se agota el tiempo de espera de la sesión.
También genera eventos como Session_End.

Session.Clear se puede comparar con sacar todos los libros del estantemientras que Session.Abandon es más como tirar todo el estante.

Tu dices:

Cuando pruebo la sesión, no hace ningún cambio cuando abandono la sesión.

Esto es correcto mientras lo estás haciendo. dentro de una sola solicitud.
En la próxima solicitud la sesión será diferente. Pero la identificación de la sesión se puede reutilizar para que la identificación siga siendo la misma.

Si utilizará Session.Clear, tendrá la misma sesión en muchas solicitudes.

Generalmente, en la mayoría de los casos necesita usar Session.Clear.
Puede usar Session.Abandon si está seguro de que el usuario abandonará su sitio.

Así que volvamos a las diferencias:

  1. Abandon genera la solicitud Session_End.
  2. Borrar elimina elementos inmediatamente, Abandonar no.
  3. Abandon libera el objeto SessionState y sus elementos para que pueda recoger la basura para liberar los recursos. Clear mantiene SessionState y los recursos asociados con él.

Cuando usted Abandon() una sesión, usted (o más bien el usuario) obtendrá un nuevo ID de sesión (en la próxima solicitud). Cuando usted Clear() una sesión, se eliminan todos los valores almacenados, pero el ID de sesión permanece intacto.

Esto es clasificar de cubierto por las diversas respuestas anteriores, pero la primera vez que leí este artículo me perdí un hecho importante, lo que llevó a un error menor en mi código…

Session.Clear() BORRARÁ los valores de todos los keys pero NO hará que se active el evento de fin de sesión.

Session.Abandon() NO borrará los valores en la solicitud actual. SI se solicita otra página, los valores desaparecerán para esa. Sin embargo, abandonar lanzará el evento.

Entonces, en mi caso (¿y quizás en el tuyo?), necesitaba Clear() seguido por Abandon().

Acuérdate de que te brindamos la opción de agregar una reseña .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *