Домашняя страница кэша для неаутентифицированных пользователей в ASP.NET MVC 3 - PullRequest
4 голосов
/ 07 февраля 2012

На моем веб-сайте есть домашняя страница, и я хотел бы кэшировать эту страницу для анонимных пользователей и установить ее как "приватную" для аутентифицированных пользователей (чтобы они сохраняли ее на своих компьютерах, нигде больше).

Итак, если пользователь является анонимным, я хочу сохранить страницу в кэше сервера, а также в кэше браузера, используя Cache-control:public, max-age=60 и Vary:Cookie, поэтому, если браузер проходит аутентификацию и отправляет cookie, браузер выиграл не использовать ранее сохраненную страницу.

Если пользователь прошел аутентификацию, я не хочу, чтобы страница сохранялась на сервере, но я делаю это в браузере клиента, используя Cache-control:private, max-age=60.

Я пытался с несколькими комбинациями с OutputCacheAttribute и Response.Cache, но я не могу сделать это правильно.

Как лучше всего это сделать?

Привет.

1 Ответ

2 голосов
/ 08 февраля 2012

Вы можете попробовать реализовать правило VaryByCustom, которое будет различать анонимных и аутентифицированных пользователей. Вот пример , который должен поставить вас на правильный путь.

...