¿Consulta de cookies repetida o almacenamiento en estado de visualización? ¿Cuál es la mejor práctica?

StackOverflow https://stackoverflow.com/questions/167873

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo un sitio web interno en el que los usuarios inician sesión. Estos datos se guardan como una cookie. A partir de ahí, los usuarios siguen su camino alegre. De vez en cuando, las aplicaciones consultarán el registro de autenticación para determinar qué permisos tiene el usuario.

Mi pregunta es la siguiente: ¿es más eficaz solo consultar la cookie para obtener los datos del usuario cuando sea necesario o guardar la información del usuario en el estado de visualización?

[Editar] Como se menciona a continuación, la sesión también es una opción.

¿Fue útil?

Solución

Viewstate es específico de la página que están viendo, por lo que desaparece una vez que van por su camino alegre. No es una buena manera de persistir los datos.

Su mejor opción es usar Forms Authentication, está integrado en ASP.NET y también puede insertar cualquier información específica del usuario en el valor del Forms Authentication Ticket. Puede obtener 4000 bytes (después del cifrado) allí que debe contener lo que necesite. También se encargará de permitir y denegar a los usuarios el acceso a las páginas del sitio, y puede configurarlo para que caduque cuando lo necesite.

El almacenamiento en la sesión es no-no porque se escala MUY mal (consume recursos en el servidor), y puede ser molesto para los usuarios con múltiples conexiones de navegador al mismo servidor. A veces es inevitable, pero si puede, debe hacer un gran esfuerzo para evitarlo.

Otros consejos

Personalmente, prefiero usar una sesión para almacenar cosas, aunque los otros desarrolladores aquí parecen pensar que es un no-no.

Hay una advertencia: es posible que desee almacenar la IP del usuario en la sesión y compararla con la IP actual del usuario para ayudar a evitar el secuestro de la sesión. Es posible que alguien más tenga una mejor idea sobre cómo evitar el secuestro de sesiones.

Puede usar los datos de la sesión; de esa manera, sabrá que una vez que los haya almacenado allí, los usuarios no pueden jugar con ellos cambiando la cadena de consulta.

Usaría el método de cookies. La sesión está bien, pero asp.net la elimina en la recompilación, y debe usar una cookie que no sea de sesión si quiere conservarla después de la sesión de todos modos. Además, si alguna vez usa un servidor de estados, es esencialmente lo mismo (almacena la sesión en la base de datos). La sesión es como una solución rápida y sucia, los hombres reales usan cookies.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top