In ASP.NET, when should I use Session.Clear() rather than Session.Abandon()?
Session.Abandon() destruye la sesión y el evento es Session_OnEnd disparada.
Session.Clear() simplemente elimina todos los valores (contenido) del Objeto. La sesión con la misma clave sigue siendo activa.
Por lo tanto, si usa Session.Abandon(), pierde esa sesión específica y el usuario obtendrá una nueva clave de sesión. Usted podría usarlo, por ejemplo, cuando el usuario cierre sesión.
Uso Session.clear(), si desea que el usuario restante en la misma sesión (si no quiere que él para relogin ejemplo) y reiniciar todas sus sesiones datos específicos.
What is the difference between Session.Abandon() and Session.Clear()
Borrar - Elimina todas las claves y valores de la colección de estados de sesión.
Abandono: elimina todos los objetos almacenados en una sesión. Si no hace llame al método Abandon explícitamente, el servidor elimina estos objetos y destruye la sesión cuando la sesión expira. También plantea eventos como Session_End.
Session.clear se puede comparar con la eliminación de todos los libros de la estantería, mientras Session.Abandon es más como tirar toda la plataforma.
...
En general, en la mayoría de los casos, es necesario el uso Session.clear. Puede usar Session.Abandon si está seguro de que el usuario abandonará su sitio.
Así que de vuelta a las diferencias:
- Abandonar plantea petición Session_End.
- Borrar elimina elementos inmediatamente, Abandon no lo hace.
- Abandon libera el objeto SessionState y sus elementos para que pueda recoger .
- Borrar mantiene SessionState y los recursos asociados con él.
Session.Clear() or Session.Abandon() ?
Se utilizan Session.clear() cuando no desea terminar la sesión, pero en lugar simplemente claras todas las claves de la sesión y reinicie la sesión.
Session.Clear() no hará que el controlador de eventos Session_End en su archivo Global.asax se ejecute.
Pero, por otro lado Session.Abandon() eliminará la sesión por completo y se ejecutará eventhandler Session_End.
Session.clear() es como la eliminación de los libros de la estantería
Session.Abandon() es como tirar la estantería sí.
Pregunta
reviso algunas sesiones si no igual nulo en la carga de la página. si uno de ellos es nulo, quiero borrar todas las sesiones y redireccionar a la página de inicio de sesión?
respuesta
Si desea que el usuario vuelva a conectarse, utilice Session.Abandon.
posible duplicado de [En ASP.NET, ¿cuándo debería usar Session.Clear() en lugar de Session.Abandon()?] (Http://stackoverflow.com/questions/347377/in-asp-net-when -should-i-use-session-clear-rather-session-abandon) –