__ VIEWSTATE нельзя, так как переопределяя методы, вы изменяете
внутреннюю процедуру, которая его создает.
Функция GetFileName в только что показанном коде назначает файлам имена по следующему шаблону:
ИдентификаторСеанса„иЯ1.viewstate
|
Метод ч:::- ^¡1-: Регз^чЮпсе.Мес!!ит определяет имя файла, из которого нужно считать данные, извлекает строку в кодировке Base64 и вызывает из класса ЕояГопгаг!<?1 метод, леесриалпзутщпй данные (рис. 8). |


<% Wage Language="C#" Inherits="MsdnMag. ServerViewStatePage" X>
Но знайте, что идентификаторы сеансов (как и любой механизм состояний) уязвимы перед атаками с повторением пакетов (replay attacks) и средствами анализа пакетов, поэтому здесь тоже нужно остерегаться некоторых подводных камней, описанных выше. И вновь SS I — лучшее средство защиты данных при пересылке. Кроме того, вы можете сохранять файлы вне пространства Web-приложения и назначать им случайные имена. А реальное имя файла можно закодировать и записать в скрытое поле.
Заключение
Состояние отображения — ключевой элемент ЛЯР.ЫЕТ-стрлницы, по- скольку это главный механизм сохранения состояния серверных Web-эле- ментов управления на Всякий раз, когда страница возвращает-
ся на сервер, ее состояние отображения восстанавливается, обновляется текущими значениями параметров формы и используется для обработки события возврата формы на сервер (postback event). Обычно состояние отображение представляет собой х.нпнронаниую строку в кодировке Base64, хранимую в скрытом поле _ VIEWSTATE. Состояние отображения не кэшируется на клиенте, а передается от клиента к серверу и обрат-
но, что снижает производительность и угрожает безопасности приложения. Но состояние отображения можно хранить на сервере, для чего потребуется минимум кода. За это придется расплачиваться издержками на обращение к дисковому файлу или базе данных, зато страницы «похудеют» и будут более защищенными. Хотя я рассматривал постоянное хранилище на сервере (в файле или базе данных), ничто не меш.нт использовать для этой цели объект Cache, который позволит хранить данные на сервере и обеспечит высокое быстродействие.
Стивен Смит
