Мы предложили 3 варианта предоставления кнопок администрирования на Действиях / страницах с кэшированием и хотели бы знать, есть ли другие проблемы или проблемы с производительностью / памятью / удобством использования:
- Кеширование пончиковой дыры - http://haacked.com/archive/2009/05/12/donut-hole-caching.aspx
- VaryByCustom - http://visitmix.com/writings/using-varybycustom-with-outputcache-in-asp-net-mvc-to-support-caching-for-logged-in-users
- Создание отдельных действий администратора / страниц
РЕДАКТИРОВАТЬ: Есть ли способ "перегрузить" действия? т.е. было бы неплохо, если бы был способ вызвать Action, который имеет атрибут [OutputCache] для не-admin пользователей и Action без атрибута [OutputCache] для admin пользователей .
Справочная информация. У нас очень простой блог, и мы хотим, чтобы административные пользователи могли редактировать / удалять сообщения и утверждать комментарии. Итак, мы добавили кнопки, которые отображаются только для административного использования, используя решение, показанное в asp.net бритва MVC3: отображать actionlink в зависимости от роли пользователя - ".If (User.IsInRole (" Administrators "))" .
Затем мы добавили [OutputCache (Duration = 30)] к этому действию и обнаружили, что все увидят либо версию администратора, либо более простую - в зависимости от того, кто первым запросил страницу после истечения времени ожидания кэша. Duh ...