Вся причина для Viewstate или Session состоит в том, чтобы превратить Интернет из системы без состояния в динамичный, настраиваемый интерфейс. Когда пользователь запрашивает страницу, единственный способ возобновить работу с того места, где он остановился в своем опыте, - запомнить состояние либо на сервере, либо на клиенте пользователя.
Viewstate - это механизм запоминания состояния пользователя на клиенте.
Сессия - это механизм запоминания состояния пользователя на сервере.
Viewstate - это временный механизм хранения. Для элементов управления, которые используют viewstate, их состояние отображается на html-странице как скрытый ввод. Чтобы предотвратить фальсификацию, он подписан. Однако он не зашифрован, так что вы, вероятно, не захотите помещать в него НИЧЕГО чувствительного. Viewstate полезен в ситуациях, когда вы хотите опубликовать несколько последовательных запросов (загрузка страниц). Примером этого является случай, когда форма не проверяется, потому что, возможно, пользователь ввел неправильный адрес электронной почты или что-то еще, и вы хотите восстановить форму, как это было до отправки пользователем. Недостатком этого является то, что viewstate - это голодный зверь, который может легко прибавить 30-50% к размеру страницы.
Сеанс, с другой стороны, хранится на сервере. Клиент получает токен, который сообщает серверу, какой блок памяти принадлежит им. Это может быть намного более безопасно, чем представление состояния, потому что данные не передаются пользователю снова и снова. Хотя есть компромиссы. Ваш сервер может исчерпать память. Или пользователь может потерять данные, если его сеанс будет прерван.
Как правило, нет «правильного» ответа, который можно использовать. Это все о том, что вы пытаетесь достичь.
Большинство вещей, связанных с элементами управления, должны использовать Viewstate. Однако, если вы имеете дело с конфиденциальной информацией, рассмотрите сессию. Если у вас есть данные для определенного набора страниц, используйте viewstate. Если это данные, которые вам понадобятся во время посещения пользователем вашего сайта, просмотрите сессию.