2008-11-14 10 views
13

Ich benutze ASP.NET Preview 5 (wird bald auf Beta) mit LINQ2SQL auf meinem kürzlich launched tiny webapp.ASP.NET MVC Caching variieren durch Authentifizierung

Ich war so stolz auf meine Arbeit, bis Silverlight.net es auf der ersten Seite vorstellte und es begann, eine mehr als bescheidene Anzahl von Besuchern zu empfangen.

Aus irgendeinem Grund erhalten Benutzer manchmal "Angegebene Umwandlung ungültig", die von LINQ2SQL ausgelöst werden. Dies liegt daran, dass nicht authentifizierte Benutzer als "Gast" -Benutzer behandelt werden und der Controller Informationen über den Benutzer "Gast" lädt schlagen.

Auf der ersten Seite gibt es einen "Willkommen [USERNAME]" auf der Oberseite, die leicht mit Donut Caching zwischengespeichert werden kann.

In der Mitte gibt es jedoch einen "What is Dudlers.com" -Block, der nur nicht authentifizierten Benutzern angezeigt werden soll, und einen weiteren "About You" -Block, der nur authentifizierten Benutzern angezeigt werden soll. Diese Blöcke sind zu kompliziert, um mit Donut Caching zwischengespeichert zu werden. Sie sind viel zu verschieden, es wird sehr unordentlich sein.

Ich möchte die erste in Abhängigkeit vom Authentifizierungsstatus des Benutzers zwischenspeichern. So erhalten nicht authentifizierte Benutzer (selbstverständlich die Mehrheit) die Seite "Gast" im Cache, und anderen authentifizierten Benutzern wird eine neue nicht zwischengespeicherte Seite angezeigt.

Gibt es eine Option zum Angeben der Zwischenspeicherung, die durch Authentifizierung variiert wird? etwas wie: [OutputCache (VaryBy = Authentifizierung)]

Oder gibt es eine andere nonASP.NET MVC Lösung? (vielleicht Tuning MS SQL)

Ich hoffe, meine Frage ist klar. Ich verwende Windows 2003 und MS SQL 2005 Express auf demselben dedizierten Server.

Vielen Dank!

+0

Haben Sie es geschafft, die Donut-Caching-Funktion zu aktivieren? –

Antwort