Как получить значение построенного, зашифрованный ViewState?

голоса
22

Мне нужно, чтобы захватить в кодировке base64 представление ViewState. Очевидно, что это не будет доступна до довольно поздно в жизненном цикле запроса, который OK.

Например, если выход страницы включает в себя:

<input type=hidden name=__VIEWSTATE 
  id=__VIEWSTATE value=/wEPDwUJODU0Njc5MD...== />

Мне нужен способ на стороне сервера, чтобы получить значение /wEPDwUJODU0Njc5MD...==

Чтобы уточнить, мне нужно это значение , когда страница визуализируется, а не на PostBack. например , мне нужно знать значение ViewState , что в настоящее время отправляется клиенту, а не ViewState я получаю от них.

Задан 04/08/2008 в 04:59
источник пользователем
На других языках...                            


3 ответов

голоса
9

Рекс, я подозреваю , что хорошее место , чтобы начать искать это решение , которые сжимают ViewState - они захват ViewState на сервере перед отправкой вниз к клиенту и сжатия его. Вот именно там , где вы хотите быть.

Ответил 04/08/2008 в 09:04
источник пользователем

голоса
3

Смотрите эту запись в блоге , где автор описывает метод для переопределения поведения по умолчанию для генерации ViewState и вместо этого показывает , как сохранить его на объекте сервера сеансов.

В ASP.NET 2.0 ViewState сохраняется потомок класса PageStatePersister. Этот класс является абстрактным классом для сохранения и загрузки ViewsState и есть два реализованных потомков этого класса в .Net Framework, с именем HiddenFieldPageStatePersister и SessionPageStatePersister. По умолчанию HiddenFieldPageStatePersister используется для сохранения / загрузки ViewState информацию, но мы можем легко получить SessionPageStatePersister работать и сохранить ViewState в объекте Session.

Хотя я не проверял свой код, кажется, чтобы показать, что именно вы хотите: способ получить доступ к ViewState кода в то же время на сервере, перед тем постбэка.

Ответил 04/08/2008 в 10:04
источник пользователем

голоса
2

Я включил сжатие после аналогичных статей для тех, размещены выше. Ключ для доступа к ViewState, прежде чем приложение посылает он перекрывая этот метод;

protected override void SavePageStateToPersistenceMedium(object viewState)

Вы можете вызвать базовый метод в течение этого переопределения, а затем добавить любую дополнительную логику вы требуете, чтобы справиться с ViewState.

Ответил 05/08/2008 в 11:07
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more