Вы можете хранить практически любой объект в хранилище сеансов с несколькими исключениями, которые обычно связаны с запуском на ферме серверов. Однако я проигнорирую эти случаи.
Если вы имеете дело только с несколькими МБ данными, их сохранение в объекте Session (или Cache, как предлагает @Rick) не обязательно является серьезной проблемой. Как только данные будут возвращены из веб-службы и проанализированы в ваши собственные внутренние структуры данных, просто поместите объект корня структуры данных в сеанс. Я использую этот метод довольно часто, чтобы хранить результаты запросов к базе данных, которые занимают много времени, особенно если критерии запроса вряд ли будут часто меняться.
Для больших наборов данных вы, вероятно, должны использовать базу данных для хранения информации. Создайте таблицы, которые соответствуют структуре возвращаемых данных, и помечают данные каким-либо образом, чтобы указать, сколько лет оно и какие критерии использовались при его получении. Обновляйте по мере необходимости и запрашивайте базу данных для записей по каждому запросу клиента.
Существует множество других опций, в том числе создание временных файлов для хранения данных с использованием SessionID для их идентификации, но я сначала рекомендую сначала изучить параметр базы данных.
Но почему вы не хотите использовать кеширование? – Maris
@Maris: Эти данные не изменяются очень часто, но представления, которые используют эти данные, отображаются много раз! – Nauman
@Maris: Кэширование на данный момент не является опцией, поскольку данные являются специфичными для пользователя, а Session, на мой взгляд, является правильным кандидатом для таких данных. – Nauman