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: 433 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Prokleta_Nedelja

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

Sajt: www.adresar.ba


Profil

icon Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 07:01

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]
Poslovni imenik i adresar Bosne i Hercegovine http://www.adresar.ba http://wap.adresar.ba
21.04.2008. u 07:01 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1607
195.252.78.*



Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 08:52
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.


▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
21.04.2008. u 08:52 

Prokleta_Nedelja

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

Sajt: www.adresar.ba


Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 10:15
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.
Poslovni imenik i adresar Bosne i Hercegovine http://www.adresar.ba http://wap.adresar.ba
21.04.2008. u 10:15 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1607
195.252.78.*



Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 10:34
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

▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
21.04.2008. u 10:34 

Prokleta_Nedelja

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

Sajt: www.adresar.ba


Profil

icon Re: Validation of viewstate - Kako se borite sa ovim problemom (ASP.NET 2.0)21.04.2008. u 11:15
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
Poslovni imenik i adresar Bosne i Hercegovine http://www.adresar.ba http://wap.adresar.ba
21.04.2008. u 11:15 

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

[ Pregleda: 433 | Odgovora: 4 ]

Postavi temu Odgovori

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