Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)

[es] :: .NET :: ASP.NET :: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)

[ Pregleda: 2291 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Prokleta_Nedelja
Beograd

Član broj: 90608
Poruke: 450
*.teol.net.



+42 Profil

icon Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 07:01 - pre 194 meseci
Prije nekoliko mjeseci imao sam bliski susret sa ovim problemom:

Code:
Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, 
ensure that <machineKey> configuration specifies the same validationKey and validation algorithm. 
AutoGenerate cannot be used in a cluster.


Guglajući do besvjesti pročitao sam da je problem u stvari što je ViewState kriptovana. Nestrpljiv korisnik napravi PostBack prije nego što se cijela stranica učita do kraja tako da se kriptovana ViewState ne prenese na sledeću stranu kako treba, tj server onda "ne zna" da je ViewState kriptovana. Takođe sam pročitao da Microsoft osoblje tvrdi da bi ispitali taj bug moraju napraviti Web Farm. Ja i mnogo drugih korisnika nemamo Web Farm ali dobijemo taj exception. Zvaničnog rješenja nema.

Ovaj problem sam riješio pomoću JavaScripta (i prijatelja) i od tada nemam ovaj problem.
Interesuju me dvije stvari:

1. Kako vi rješavate ovaj problem i da li ga uopšte imate?
2. Da li Frejmvork 3.5 ima ovih problema

[Ovu poruku je menjao mmix dana 21.04.2008. u 09:26 GMT+1]
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 08:52 - pre 194 meseci
Problem je do enkripcije viewstate-a i validacije callback poziva. Po defaultu, eventi su podlozni validaciji i viewstate se kriptuje ako bar jedna kotrnola to zatrazi (a gridovi i druge kotrnole koje u viewstate ubacuju i nesto sem svojih informacija obicno traze ). Kao posledica toga, na kraju aspx stranice pre </form> taga se renderuju sledeca dva taga:

Code:

<input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="JaeWJT3R03KcdibVVc2Eo3xNlcxURfbH7zN7LQSm758=" />


Kad neko bude uzurban onda postback ne sadrzi ova dva taga i dobijas gresku koju vidis. Da bi aplikacija lepo radila sa tim brzim korisnicima, moras da iskljucis i validaciju eventa i enkripciju, u web.config file-u promeni <pages> u

Code:

<pages viewStateEncryptionMode="Never" enableEventValidation="false">


S tim sto naravno gubis security benefite koje su ti ove dve opcije nudile.

I da, .net3.5 i dalje koristi asp.net2.0 engine tako da je problem i dalje tu.


Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Prokleta_Nedelja
Beograd

Član broj: 90608
Poruke: 450
*.teol.net.



+42 Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 10:15 - pre 194 meseci
Ja sam izabrao neko rjesenje tako sto sam ubacio js kod

Code:

<script lang="javascript">document.getElementsByTagName("form")[0].disabled = true;</script>
</form>
</body>
<script lang="javascript">document.getElementsByTagName("form")[0].disabled = false;</script>
</html>


od tada nisam imao ovaj problem. Koliko je ovo dobro rjesenje? Ne zelim da narusim sigurnost stranice, nije mi to neko pouzdano rjesenje. Takodje sam primjetio da se ova greska javlja kod DataList i GridView objekata.
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 10:34 - pre 194 meseci
Pa sva ta resenja su manje vise "trkanje" sa korisnikom, skracivanjem vremena u kojem korisnik moze da klikne na dugme a da izazove gresku. Ti disablujes formu tik pre </form>, sto tehnicki znaci da nisi mnogo otisao daleko (sem mozda za autosubmit) jer se problematicna polja generisu tek pred </form> tako da je taj div sa skrivenim poljima jedino sto je preostalo da se izrenderuje tokom tvog "pasivnog" perioda. I dalje postoji mogucnost da korisnik klikne na submit dugme iznad grida dok se grid renderuje sto nece biti pokriveno tvojim resenjem. Na zalost, ne postoji efikasno resenje, mozda bi mogao malo da ga poboljsas tako sto ces disable skriptu da stavis odmah ispod <form> ali to onda zavisi od toga da li se DOM updatovao dovoljno brzo da form udje u forms collection

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

Prokleta_Nedelja
Beograd

Član broj: 90608
Poruke: 450
*.teol.net.



+42 Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 11:15 - pre 194 meseci
Ostaje mi da uradim kao sto si i rekao ili da napisem na sajtu "Ko klikne previse brzo dobice ćušku"
Ovo je ozbiljan propust, ne znam zašto niko od M$ familije ne radi na ovome. Doduše možda i radi ali ništa konkretno nisam našao
 
Odgovor na temu

[es] :: .NET :: ASP.NET :: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)

[ Pregleda: 2291 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.