Quando inserisco caratteri HTML nel mio modulo, ad esempio <br />
, ASP.NET genera un'eccezione interna 500 come descritto in here.Quando invio caratteri HTML nel mio modulo, perché ASP.NET genera un errore interno del server (500)?
A potentially dangerous Request.Form value was detected from the client (Name="<br />").
Ok, quindi mi sta proteggendo da caratteri non codificati che potrebbero essere utilizzati per ragioni di malintenzionati.
Il problema è, e questo non viene risposto da nessuna parte nella mia lunga ricerca, è cosa fare al riguardo. Cioè la mia applicazione non deve semplicemente generare un errore generico del server interno quando un utente inserisce caratteri non validi (cosa succede se sta disegnando una freccia come < -).
Ciò che sarebbe meglio è semplicemente tornare alla pagina con un errore ModelState
che dice "Per favore non usare caratteri HTML" o qualcosa di significativo.
Ma come è possibile raggiungere questo obiettivo? L'errore viene generato prima che arrivi al mio codice. Inoltre, non voglio semplicemente spegnerlo via validateRequest="false"
e quindi devo convalidare ogni singolo modulo nella mia applicazione per i caratteri HTML e restituire un errore.
C'è un modo per lasciare abilitato questo tipo di convalida, ma gestirlo in modo diverso?
Codice di chiarimenti:
Model
Public Class SomeModel
Public Property SomeField As String
End Class
Controller
<HttpPost>
Function SomeController(ByVal model As SomeModel)
' model.SomeField contains some HTML characters :O
' but it doesn't matter, since an internal error has occured :(
End Function
Aggiornato il mio problema per includere del codice, per il contesto. –