Richiesta di convalida - ASP.NET MVC 2
-
22-07-2019 - |
Domanda
La convalida della richiesta è stata modificata per ASP.NET MVC 2, più precisamente, non convalida?
Ho fatto quanto segue:
Web.configs (nella directory App e nella directory Views)
<pages
validateRequest="false"
Attributo controller / azione
[ValidateInput(false)]
Nella direttiva @Page View
ValidateRequest="false"
La pagina viene ancora convalidata quando viene postato contenuto HTML viene generata un'eccezione.
UPDATE
Creata una nuova applicazione ASP.NET MVC 2 e ho modificato l'indice del controller domestico in questo
[ValidateInput(false)]
public ActionResult Index(string InputText)
{
ViewData["Message"] = "Welcome to ASP.NET MVC!";
return View();
}
e la mia pagina di visualizzazione
<% using(Html.BeginForm()){ %>
<%= Html.TextBox("InputText") %>
<input type="submit" />
<% } %>
E sempre lo stesso problema, viene generata un'eccezione.
Soluzione
Dovrei leggere l'errore più attentamente la prossima volta:
Per consentire alle pagine di sovrascrivere le impostazioni di convalida delle richieste dell'applicazione, imposta requestValidationMode = " 2.0 " nella sezione di configurazione. Dopo aver impostato questo valore, è quindi possibile disabilitare la convalida della richiesta entro impostazione validateRequest = " false "
Ho inserito questo nel web.config dell'applicazione
<system.web>
<httpRuntime requestValidationMode="2.0" requestPathInvalidCharacters="" />
</system.web>
e ha funzionato.
Aggiornamento:
Stavo eseguendo ASP.NET 4, ecco perché: P
Altri suggerimenti
Inserisci qui un avviso obbligatorio su XSS.
Che hai decorato il controller (o l'azione) con ValidateInputAttribute
dovrebbe essere sufficiente, poiché tutta la convalida viene eseguita a questo livello di controller in ASP.NET MVC
Ho appena provato questo ora su un'azione, e restituisce un avviso malevolo () quando lo emetto, quindi mi azzarderei a pensare che ci sia qualcos'altro in corso qui.
Hai un HandleErrorAttribute
installato ovunque?