# Vielä enemmän ViewState...no, lemmikkini pissaa ASP.NET todella...

<datetime class="hidden">2004-02-29T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, Web Development, Security -->
Olen miettinyt ViewStatea. [jutut](/posts/697.aspx) Mainitsin aiemmin, että se itse asiassa tuo esiin ASP.NETissä mitä ärsyttävimmän asian - eikä tämä ole poliittinen asia! Miksi "tavalliset" käyttäjät eivät voi nähdä ASP.NETin lähdettä, sikäli kuin olen tietoinen, [Roottori](http://research.microsoft.com/Collaboration/University/Europe/RFP/Rotor/) ASP.NET on olemassa. Veikkaan, että tietyt MVP:t voivat [käytä tätä lähdettä](http://www.microsoft.com/presspass/press/2003/oct03/10-22MVPSLP2003PR.asp) tosin Jaettu lähde -aloite - meidän muiden on luotettava muun muassa [Heijastin](http://www.aisto.com/roeder/dotnet/) Poseerataksesi (mikä olisi hyödyllistä, jos ASP.NET-lähteeseen voisi liittää vianetsintälaitteen!).
Tähän voisi kai soveltaa vanhaa argumenttia "jos annamme pääsyn lähteeseen, jota emme voi muuttaa", tai "ihmiset muuttavat sitä itse aiheuttaen meille lisää ongelmia", JSP:llä ja J2EE:llä on täysi pääsy lähdetietoihin, ja niin on aina ollut. Näin ei vain ole tapahtunut (vaikka opin JSP:n paljon nopeammin, koska pystyin juurruttamaan ja ymmärtämään, mitä oli tekeillä).
Olettaen, ettemme koskaan pääse käsiksi ASP.NET-lähteeseen, miten pääsemme yli ongelmista, joita minulla on ollut ViewState-järjestelmän kanssa? Yksinkertaiset, tehdasmenetelmät ydinohjeille. Onneksi ASP.NET 2.0 tekee näin joillekin kohteille (lähinnä uusille), kuten personointiin ja jäsenyyteen – joissa voit määritellä omat tuottajaluokkasi näille kohteille.
Jos näin olisi käynyt myös kaikille muille ASP.NET-ydintuotteille - esimerkiksi Session-tilassa on samanlainen ongelma, voit pitää kiinni kolmesta ASP.NETin sallimasta valtion myymälästä, SQL-palvelimesta, In Processin extrenal State -palvelimesta - olisiko ollut todella niin vaikeaa sallia käyttäjämääritelmän mukainen luokka tällekin (jos ASP.NET 2.0 on tämä jo olemassa ja minun on vain tyhmä löytääkseni viittauksen, ilmoita minulle!)?
Joten, ASP.NET 2.0 - iso askel eteenpäin peruspuitetuotteiden käyttäjän räätälöinnissä - mutta vain vähän pidemmälle olisi mahtavaa!

PÄIVITYS: Huomasin juuri [Tämä merkintä](http://weblogs.asp.net/jasonsalas/archive/2003/12/24/45572.aspx) Euroopan parlamentin ja neuvoston asetus (EU) N:o 1306/2013, annettu 11 päivänä joulukuuta 2013, Euroopan parlamentin ja neuvoston asetusten (EU) N:o 1306/2013, (EU) N:o 1306/2013, (EU) N:o 1306/2013, (EU) N:o 1306/2013, (EU) N:o 1306/2013, (EU) N:o 1306/2013, [Jason Salasin](http://weblogs.asp.net/jasonsalas/) Weblog - ViewState API...hmm...en ole varma siitä, kuinka käytännönläheinen deklaratiivisen vahva kirjoitusjärjestelmä olisi (esimerkki 2); sivusto yleensä tallentaa satoja kohteita ViewState - vahvasti kirjoittamalla jokainen olisi totaalinen kipu. Esimerkki 3 on kuitenkin aika siisti:

**CHEESY ESIMERKKI 3:**

**Int homePhoneJenny = 8675309**

**ViewState.Insert (KeyPhone, homePhoneJenny,System.Int32);**

Se tuntuu aika hyödylliseltä!, joten voisin tehdä ViewState.keyPhone saada int32 takaisin...ei vieläkään ratkaise ongelmaa, että emme voi leikkiä ViewState toimii kuitenkin - joten en voi tarkentaa, että haluan käyttää Rijndaelia salausmekanismina (3DES on [aika hidas](http://www.google.co.uk/search?q=cache:clx27guXn2cJ:www.cs.ucsc.edu/~elm/Classes/122/s03/Slides/cmps122.lec04.2up.pdf+riJNDAEL+3des+sPEED&hl=en&lr=lang_en&ie=UTF-8)!) tai että haluan pakata ViewState / jopa tallentaa sen muualle / muokata, miten ohjaimet pääsevät ViewStateen ilman, että kaikki pelaavat ylikuormitetuilla menetelmillä tai edes heijastavat (värisevät)...