What is ViewState? How is it encoded? Is it encrypted? Who uses ViewState?
相关问题
- Views base64 encoded blob in HTML with PHP
- Carriage Return (ASCII chr 13) is missing from tex
- How to store image outside of the website's ro
- Is there a way to play audio on a mobile browser w
- HTML form is not sending $_POST values
ViewState is one technique asp.net uses to enable the postback model. The state for all controls that are marked
runat="server"
is stored in this base64 string.This pluralsite article explains in more depth
If you really want to understand ViewState (not just what it is used for), then you may want to read this fabulous article (which I, unfortunately, am not the author of :-). Beware, though, it is a bit dated, but still a very good read.
View state is a kind of hash map (or at least you can think of it that way) that ASP.NET uses to store all the temporary information about a page - like what options are currently chosen in each select box, what values are there in each text box, which panel are open, etc. You can also use it to store any arbitrary information.
The entire map is serialized and
encryptedencoded and kept in a hidden variable that's posted back to the server whenever you take any action on the page that requires a server round trip. This is how you can access the values on the controls from the server code. If you change any value in the server code, that change is made in the view state and sent back to the browser.Just be careful about how much information you store in the view state, though... it can quickly become bloated and slow to transfer each time to the server and back.
As for encryption, I dont' know how strong it is, but its sure not easily human readable. I wouldn't use it for sensitive information, though.As pointed out in the comments, it's not encrypted at all. Just base encoded, which easily reversible.Allow me to share with you what I learned today.
What is ViewState?
If I have something like this:
The view state of a page is, by default, placed in a hidden form field named __VIEWSTATE.
Read More
How is it encoded? Is it encrypted?
ViewState is Encoded and not Encrypted by default. Lets take the previous input type value are run the below code:
The output for the above code will be
?-1616687229UserNameShubh DasguptaPasswordIAmAPassworffffd??O??J(Oc|f?X?? b???=??}+)?f"
If you read in details of the article I mentioned before, you would come up with the 'Cost Of ViewState' where it is clearly and beautifully written :
Try it yourself. Download Sample
ViewState's not encrypted as default, using base64 encoding. You may want to use viewstate if your page has an action with controls.
It is a hidden field generated by ASP.NET that contains information about all the controls on the page. Ideally the view state should not need to be encrypted, as it should never contain sensitive information. To indicate that the view state should be encrypted, set the
<machineKey>
element's validation attribute in themachine.config
file to3DES
. There's a nice article on MSDN describing ViewState.