Интересует именно сессия пользователя. То есть кеш должен быть доступен конкретной сессии пользователя. Также важно, чтобы у кеша был срок жизни, через который происходило бы обновление данных.
Как сделать аналогичный кеш на уровне приложения (для всех сессий пользователей) я знаю, нужно именно для сессии:
HttpRuntime.Cache.Insert(key, obj, null, DateTime.Now.AddMinutes(minutes), TimeSpan.Zero);