2009-09-22 8 views
17

Sto cercando di aggirare l'errore "Request.Form potenzialmente pericoloso" e non sto avendo fortuna. Sì, sì, ho letto tutte le altre domande relative a StackOverflow e nessuno di loro sembra avvicinarmi a una risposta. Sto usando [ValidateInput(false)] su tutte le azioni correlate del controller ... e ho controllato molte volte. Sto usando ValidateRequest='false' in tutte le viste ASPX correlate.L'attributo ValidateInput non sembra funzionare in ASP.NET MVC

Sto usando ASP.NET MVC 2 Anteprima 1, ma non penso che sia un problema in quanto l'errore viene generato più in basso nel framework; Page.ProcessRequest per essere esatti. Non riesco a vedere nulla di sbagliato, ho persino impostato <page validateRequest='false'> nel web.config e non è stato risolto.

risposta

7

Beh ... ha risposto al mio problema ... il colpevole: Html.RenderAction<T>. Se vi sono chiamate ad altre azioni nel contesto della richiesta (ad es. Dalla Pagina master o dai partial secondari), anche queste azioni devono avere [ValidateInput(false)] impostato in modo appropriato. Questo sembra un po 'un problema con MVC o il modo in cui l'oggetto Page funziona in ASP.NET poiché questo è un bug veramente offuscato da trovare.

32

Con asp.net 4, è necessario configurare anche la modalità di convalida in web.config.

Imposta quanto segue come un figlio dell'elemento <system.web>:

<httpRuntime requestValidationMode="2.0"/> 

Asp.Net 4 imposta la requestValidationMode a 4.0 per impostazione predefinita, che dice al sistema per eseguire richiesta di convalida prima della fase BeginRequst della richiesta HTTP . La convalida avverrà prima che il sistema raggiunga l'attributo action dicendogli di non convalidare la richiesta, rendendo quindi l'attributo inutile. L'impostazione requestValidationMode = "2.0" ripristina il comportamento di convalida della richiesta di asp.net 2.0, consentendo all'attributo ValidateInput di funzionare come previsto.

(grazie Jim - upvotes belong here)

+0

Esistono aspetti negativi/svantaggi quando si utilizza questo approccio? C'è un modo per configurare per azione? –

+0

U sono l'uomo che salva la vita., Inoltre mi piacerebbe sapere che ci sono degli aspetti negativi per questo? –

1

si deve aggiungere l'attributo ad ogni azione di controllo che viene richiamato durante la vostra richiesta, vale a dire controllare tutte le richieste parziali.

Problemi correlati