Я бы настоятельно не рекомендовал хранить весь сеанс в куки. Это имеет плохие последствия для производительности. Учтите это: каждый запрос (к каждому ресурсу) будет содержать служебные данные, возможно, устаревших данных, которые вам нужны только один или два раза. В конечном итоге эти издержки коснутся ваших пользователей, вашей пропускной способности и производительности вашего сайта.
Вот пример:
GET / HTTP/1.1
Host: localhost
OtherUsefulHeaders: foo
Cookie: YourSessionState=...
Начальный размер запроса составляет около 200 байтов. Допустим, вы добавляете около 100 байт к вашей сессии. Теперь размер составляет 300 байт, а накладные расходы составляют ~ 30%. Вы добавляете еще 100 байтов, а накладные расходы составляют 50%. Это означает, что примерно 2 раза требуется время для отправки запроса и 2 раза пропускная способность.
Вам лучше взглянуть на реализацию TempData на основе файлов cookie , так как она занимает гораздо меньше места и действительно имеет смысл.