visual studio net mvc example ejemplo asp sql-server asp.net-mvc linq-to-sql caching

sql-server - net - localdb visual studio 2017



El almacenamiento en caché de ASP.NET MVC varía según la autenticación (1)

Estoy utilizando ASP.NET Preview 5 (se actualizará pronto a Beta) con LINQ2SQL en mi pequeña aplicación web recientemente lanzada .

Estaba tan orgulloso de mi trabajo hasta que Silverlight.net apareció en la primera página y comenzó a recibir una cantidad más que humilde de visitantes.

Por alguna razón, a veces los usuarios reciben "LAN cast inválida especificada" lanzada por LINQ2SQL, esto se debe a que los usuarios no autenticados son manejados como un usuario "Invitado", y el Controlador está cargando información sobre el usuario "Invitado" para cada acierto.

En la primera página, hay una "Bienvenida [NOMBRE DE USUARIO]" en la parte superior que se puede almacenar fácilmente en caché utilizando el Almacenamiento en caché de Donut .

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 se debe mostrar 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 autenticación? algo así como: [OutputCache (VaryBy = Autenticación)]

¿O hay otra solución MVP no ASP.NET? (quizás sintonizando MS SQL)

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

¡Gracias!