ASP.NET - Disabilitare la validazione di una pagina ASPX



Sviluppando in ASP.NET puo' capitare che una pagina restituisca un errore del genere:
"potentially dangerous Request.Form value was detected."

Il meccanismo di validazione delle pagine Asp.NET ha rilevato che l'utente ha inserito, ad esempio in un campo di testo, delle informazioni potenzialmente pericolose.
Ad esempio in un campo di testo, se viene inserita una stringa del tipo "alert('ciao')" o qualcosa di peggio come una funzione javascript per redirigere verso qualche altro url , e se non ci fosse alcun meccanismo di validazione, all'esecuzione della pagina verrebbe eseguito lo script.

Nel caso si voglia permettere l'inserimento di tag html, e quindi è necessario disabilitare la validazione.
Ciò si ottiene impostando a false l'attributo validateRequest della direttiva Page:

La validazione del testo inserito dovrà quindi essere effettuata da codice server-side, ad esempio eseguendo un encoding html delle stringhe inserite:
string str=TextBox1.Text;
string html=Server.HtmlEncode(string);

Se si vuole disabilitare la validazione per tutta l'applicazione web, è possibile farlo modificando il web.config:





Published: February 08 2006

  • category: