A veces el estado de sesión solo existente mata el rendimiento. En serio, poner un solo valor booleano allí puede MATAR tu rendimiento en algunos casos.Aquí hay un ejemplo específico:
Tiene una página de tablero y aloja varios pequeños módulos que cargan su contenido a través de ajax. Si está utilizando la sesión, solo puede cargar un módulo a la vez porque la sesión está bloqueada (por usuario) durante una solicitud. Si la sesión no se está utilizando, no hay bloqueo, y el navegador podrá solicitar la cantidad máxima de recursos (4 o más al mismo tiempo).
Ver "peticiones concurrentes y el estado de sesión" aquí:
http://msdn.microsoft.com/en-us/library/ms178581.aspx
Si se encuentra con este, o bien no utiliza la sesión, o se establece en sólo lectura (esto es difícil de hacer en ASP.NET MVC la última vez que lo comprobé).
Actualización: Otros dos escenarios del mundo real en que esto puede ocurrir:
- Tienes una página asp.net que escribe las imágenes a una respuesta binaria. Haga esto porque necesita verificar permisos u otras condiciones para determinar si se debe mostrar y qué imagen desea mostrar. Si tiene un grupo de etiquetas de imagen que hacen referencia a esta página en su SRC para buscar imágenes, solo podrá obtener una a la vez.
- Tiene una consola de administración que le permite administrar tareas. Desea poder presionar un botón y comenzar las tareas en el servidor de forma asincrónica con barras de progreso ajax. Si sus llamadas ajax solicitan páginas asp cuando tiene una sesión (ya sea que se refiera o no), solo podrá ejecutar una a la vez. Supongo que esto es similar al ejemplo del panel pero en realidad me encontré con este y me mató.
Existen sesiones sin cookies (aunque tienen su propio conjunto de problemas). – ChristopheD
Sí, consultas de sesiones basadas en cadenas, por ejemplo. Podría pasar toda la noche discutiendo en contra del uso de ellos. :) – Johan
puedes argumentar contra ellos todo lo que quisieras, no los hará existir menos. – R0MANARMY