Если вы сохраняете его в сеансе, вам необходимо убедиться, что при внедрении веб-фермы сеанс загружен правильно.
В данный момент у нас (точно) тот же вопрос, и мы решили создать шаблон репозитория и связать его с файлом cookie.
Тогда, если это станет проблемой, мы можем просто вставить в диспетчер сеансов, менеджер БД или что-то еще, и наш код даже не должен знать из-за шаблона хранилища.
Мы возились с идеей скрытых полей, но это было слишком похоже на ViewState, и мы все ненавидели его в WebForms, поэтому идея была отвергнута. Но не только потому, что мы ненавидели состояние просмотра. Были проблемы, когда вы нажимали Ctrl F5. Содержимое будет очищено и что вы будете делать?
Таким образом, на данный момент это шаблон репозитория с файлом cookie, который может измениться, но реализация поддается изменению.
EDIT
Мы также отказались от скрытых полей, потому что было бы слишком легко вносить в них изменения, и поэтому вам необходимо выполнить некоторые действия с сервером, чтобы убедиться, что он не подделан.
Скрытые поля только увеличивали сложность, что по сути должно было быть очень простой проблемой.
По крайней мере, так думали по этому поводу.