Скреб по VIEWSTATE - PullRequest
       22

Скреб по VIEWSTATE

2 голосов
/ 31 января 2012

Я столкнулся с проблемой, когда писал программу для очистки веб-страницы.

Я отправляю POST-запросы для получения данных, имитирую поведение сети, которую я проверяю (Согласно информации, собранной с помощью fiddler).

Мне удалось автоматически заменить все параметры в моем POST, кроме VIEWSTATE.Я предполагаю, что сеть выполняет некоторую логику в соответствии с заданным VIEWSTATE, и поэтому я не получаю ожидаемый результат (я попытался ввести значение, которое fiddler дает внутри VIEWSTATE, и затем я получил ожидаемые результаты, однако я хочуавтоматизировать этот процесс)

Есть ли способ, которым я могу редактировать строку VIEWSTATE, не повреждая ее?

Я пытался декодировать и кодировать обратно, используя base64 (и, наконец, URLEncode перед действием POST), не смогоставьте его действительным.

Ответы [ 2 ]

4 голосов
/ 31 января 2012

Состояние просмотра, вероятно, зашифровано.

Состояние просмотра должно быть в любом случае зашифровано.Это защита от атак XSRF того типа, который вы, похоже, пытаетесь выполнить: -)

Суть в том, что ViewState, который вы отправляете обратно, должен совпадать с состоянием представления, отправленным вам сервером.Это довольно много для чего.Другими словами, чтобы сделать то, что вы пытаетесь сделать, вам нужно сохранить копию состояния просмотра, отправленного вам сервером, и отправить то же состояние просмотра обратно.Затем сервер отправит вам новое состояние просмотра, которое вы должны отправить при следующем запросе, и т. Д.

1 голос
/ 31 января 2012

Вы можете использовать тот же сериализатор, что и asp.net.Я думаю, что это класс с именем HiddenFieldPageStatePersister.

http://msdn.microsoft.com/en-us/library/system.web.ui.hiddenfieldpagestatepersister.aspx

Надеюсь, это поможет

...