2008-11-14 7 views
13

J'utilise ASP.NET Preview 5 (va bientôt passer en version bêta) avec LINQ2SQL sur mon launched tiny webapp récemment.ASP.NET MVC Caching varient selon l'authentification

J'étais si fier de mon travail jusqu'à ce que Silverlight.net l'affiche sur la première page et il a commencé à recevoir un nombre plus qu'humble de visiteurs. Pour certaines raisons, les utilisateurs sont parfois "jeté spécifié invalide" lancé par le LINQ2SQL - parce que les utilisateurs non authentifiés sont traités comme un utilisateur "Invité", et le contrôleur charge des informations sur l'utilisateur "Invité" pour chaque frappé.

Dans la première page, il y a un "Welcome [USERNAME]" en haut qui peut être facilement mis en cache en utilisant Donut Caching. Cependant, au centre, il y a un bloc "Qu'est-ce que Dudlers.com" qui ne devrait être affiché qu'aux utilisateurs non authentifiés, et un autre bloc "À propos de vous" qui ne devrait être montré qu'aux utilisateurs authentifiés. Ces blocs sont trop compliqués pour être mis en cache en utilisant Donut Caching; ils sont trop différents, ce sera très désordonné.

Je voudrais mettre en cache le premier en fonction du statut d'authentification de l'utilisateur. Ainsi, les utilisateurs non authentifiés (inutile de le dire, la majorité) obtiennent la page mise en cache «Invité» et les autres utilisateurs authentifiés affichent une nouvelle page non mise en cache.

Existe-t-il une option pour spécifier la mise en cache modifiée par l'authentification? quelque chose comme: [OutputCache (VaryBy = Authentification)]

Ou existe-t-il une autre solution MVP non ASAP.NET? (peut-être tuner MS SQL)

J'espère que ma question est claire. Je cours Windows 2003 et MS SQL 2005 Express sur le même serveur dédié.

Merci!

+0

Avez-vous réussi à mettre en place la mise en cache des donuts? –

Répondre