У нас есть несколько страниц с очень высоким трафиком, поэтому в файле web.config есть следующее:
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="defaultCache" duration="900" varyByParam="*" location="Any"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
и следующий атрибут необходимых методов контроллера:
[OutputCache(CacheProfile = "defaultCache")]
Это хорошо нам помогло, потому что нет никакого пересечения между кэшированными страницами, обслуживаемыми обычными пользователями, и теми, которые находятся в роли администратора.Однако теперь мы внедрили CMS, где интерфейс к CMS отображается на большинстве страниц, если пользователь вошел в систему под ролью администратора.Однако мы обнаружили, что текущая стратегия кэширования у нас сейчас не работает, поскольку контент администратора кэшируется и предоставляется обычным пользователям.
Итак, есть ли способ кэширования по ролям?Возможно ли это даже в том случае, если URL-адрес страницы остается прежним, но содержимое изменяется в соответствии с зарегистрированной ролью?Было бы лучше изменить URL, добавив что-то вроде? Admin = true для всех релевантных страниц, чтобы атрибут varyByParam="*"
в нашем профиле кэша мог выполнять свою работу?
Спасибо.