Нет. HTTP использует только текст (или двоичные файлы).
Вы должны его преобразовать.
Если вы действительно хотите понять ViewState (а не только то, для чего он используется), то вы можете прочитать эту замечательную статью (автором которой я, к сожалению, не являюсь :-). Остерегайтесь, однако, она немного устарела, но все равно это очень хорошее чтение.
Я не знаю, как это сделать. Вы можете или не можете считать это улучшением:
inline bool operator< (const uint128_t &a, const uint128_t &b)
{
register uint64_t temp = a.hi;
__asm__(
"cmpq %2, %1;"
"sbbq $0, %0;"
: // outputs:
/*0*/"=r"(temp)
: // inputs:
/*1*/"r"(a.lo),
/*2*/"mr"(b.lo),
"0"(temp));
return temp < b.hi;
}
Это производит что-то вроде:
mov rdx, [r14]
mov rax, [r14+8]
cmp rdx, [r15]
sbb rax, 0
cmp rax, [r15+8]
jc is_lessthan
-121--4859369- Состояние просмотра - это своего рода хеш-карта (или, по крайней мере, вы можете думать об этом путь), которая ASP.NET использует для хранения всей временной информации о странице - например, какие опции в настоящее время выбраны в каждом поле выбора, какие значения есть в каждом текстовом поле, какая панель открыта и т.д. Его также можно использовать для хранения любой произвольной информации.
Вся карта сериализована и зашифрована закодирована и сохранена в скрытой переменной, которая отправляется обратно на сервер всякий раз, когда вы предпринимаете какие-либо действия на странице, требующие обхода сервера. Таким образом можно получить доступ к значениям элементов управления из кода сервера. При изменении какого-либо значения в коде сервера это изменение вносится в состояние представления и отправляется обратно в браузер.
Просто будьте внимательны к тому, сколько информации вы храните в состоянии просмотра, хотя... он может быстро раздуться и медленно передаваться каждый раз на сервер и обратно.
Что касается шифрования, я не знаю, насколько он силен, но он точно не легко читается человеком. Я бы не стал использовать его для получения конфиденциальной информации. Как указано в комментариях, он вообще не зашифрован. Просто база закодирована, что легко обратимо.
ViewState не зашифрован по умолчанию, используется кодировка base64. Если страница содержит действие с элементами управления, может потребоваться использовать состояние просмотра.
Это скрытое поле, создаваемое ASP.NET, которое содержит информацию обо всех элементах управления на странице. В идеале состояние представления не должно нуждаться в шифровании, поскольку оно никогда не должно содержать конфиденциальную информацию. Чтобы указать, что состояние представления должно быть зашифровано, установите атрибут проверки
элемента в файле machine.config
на 3DES
. На MSDN есть хорошая статья, описывающая ViewState.
ViewState - это одна из техник, которую использует asp.net для включения модели postback. Состояние для всех элементов управления, которые помечены runat="server"
, хранится в этой строке base64.
Эта статья на pluralsite объясняет более подробно
Состояние представления - это своего рода хэш-карта (или, по крайней мере, вы можете думать о ней именно так), которую ASP.NET использует для хранения всей временной информации о странице - например, какие опции в данный момент выбраны в каждом поле выбора, какие значения находятся в каждом текстовом поле, какие панели открыты и т.д.. Вы также можете использовать его для хранения любой произвольной информации.
Вся карта сериализуется и шифруется и хранится в скрытой переменной, которая отправляется обратно на сервер всякий раз, когда вы совершаете на странице какое-либо действие, требующее обхода сервера. Именно так вы можете получить доступ к значениям элементов управления из серверного кода. Если вы измените какое-либо значение в серверном коде, это изменение будет внесено в состояние представления и отправлено обратно в браузер.
Только будьте осторожны с тем, сколько информации вы храните в состоянии представления, хотя... оно может быстро раздуться и медленно передаваться каждый раз на сервер и обратно.
Что касается шифрования, я не знаю, насколько оно надежно, но его точно нельзя считать легко читаемым. Тем не менее, я бы не стал использовать его для конфиденциальной информации. Как было отмечено в комментариях, он вообще не зашифрован. Просто базовое кодирование, которое легко обратимо.