2009-01-19 14 views
5

Tengo entendido que el almacenamiento en caché de nivel de página no tiene en cuenta que, para sitios autenticados, diferentes usuarios pueden solicitar la misma página (URL) mientras que la página representada es diferente (porque contiene cosas que son específicas del usuario).Caché de nivel de página ASP.NET (con sitios autenticados)

A menos que active la autenticación sin cookies (entonces el ID de sesión pasa a formar parte de la URL) todos los usuarios verán la misma página en caché (independientemente de quiénes sean).

¿Es esto correcto?

Respuesta

4

Sí, está 100% correcto en este caso.

Normalmente me moveré a los controles del usuario, para poder almacenar en caché los controles del usuario de los elementos que no cambian de usuario a usuario.

Puede usar Session u otra tienda de caché si debe almacenar en caché los datos específicos del usuario.

3

Según la cantidad de contactos dinámicos que tenga en una página, puede usar el control de Sustitución para representar contenido dinámico en una página almacenada en caché.

Este control está vinculado a un método estático (recuerde que el ciclo de vida de la página no se ha ejecutado ya que esta es una versión en caché de la página y ninguno de los objetos creados en Page_Load, etc. estará disponible) que devuelve contenido dinámico y puede posicionado donde quieras en la página.

<asp:Substitution ID="mySubstitution" runat="server" MethodName="GetLoggeninUserName" /> 
0

Sí, está en lo cierto y el control de sustitución señalado por Andy (y Zhaph) es su mejor respuesta si está utilizando ASP.NET 2.0 o superior. La creación de controles de usuario separados para el contenido no específico del usuario es un enfoque menos ideal que solo debería usarse si estás trabado trabajando con ASP.NET v1.x (por lo que debes marcar la respuesta de Andy, creo).

Cuestiones relacionadas