2008-11-14 14 views
13

Estoy utilizando ASP.NET Preview 5 (se actualizará pronto a Beta) con LINQ2SQL en mi launched tiny webapp recientemente.ASP.NET MVC El almacenamiento en caché varía según la autenticación

Estaba tan orgulloso de mi trabajo hasta que Silverlight.net apareció en la primera página y comenzó a recibir un número más que humilde de visitantes. Por alguna razón, los usuarios a veces obtienen "Cast especificado no válido" lanzado por LINQ2SQL; esto se debe a que los usuarios no autenticados se manejan como usuario "Invitado" y el Controlador carga información sobre el usuario "Invitado" para cada golpear.

En la primera página, hay un "Bienvenido [NOMBRE DE USUARIO]" en la parte superior que se puede almacenar fácilmente en caché utilizando Donut Caching.

Sin embargo, en el medio, hay un bloque "Qué es Dudlers.com" que solo debe mostrarse a los usuarios no autenticados, y otro bloque "Acerca de usted" que solo debe mostrarse a los usuarios autenticados. Estos bloques son demasiado complicados para almacenarse en caché utilizando el caché de Donut; son demasiado diferentes, será muy complicado.

Me gustaría almacenar en caché el primero dependiendo del estado de autenticación del usuario. Por lo tanto, los usuarios no autenticados (ni que decir tiene la mayoría) obtienen la página "Invitado" almacenada en caché, y a otros usuarios autenticados se les muestra una nueva página no almacenada en caché.

¿Existe una opción para especificar el almacenamiento en caché variado por la autenticación? algo como: [OutputCache (VaryBy = Autenticación)]

¿O existe otra solución MVP no de ASP.NET? (quizás afinando MS SQL)

Espero que mi pregunta sea clara. Estoy ejecutando Windows 2003 y MS SQL 2005 Express en el mismo servidor dedicado.

¡Gracias!

+0

¿Logró que el donut caché funcionara? –

Respuesta

Cuestiones relacionadas