Wenn ich HTML-Zeichen in mein Formular einfüge, z. B. <br />
, löst ASP.NET eine interne 500-Ausnahme wie beschrieben here.Wenn ich HTML-Zeichen in meinem Formular einreiche, warum wirft ASP.NET einen internen Server (500) -Fehler?
A potentially dangerous Request.Form value was detected from the client (Name="<br />").
Ok, so dass es mich beschützt von nicht codierten Zeichen, die für bösartige Gründen verwendet werden könnten.
Das Problem ist, und das ist nirgendwo in meiner langen Suche beantwortet, was ist zu tun. I.e. Meine Anwendung sollte nicht nur einen generischen internen Serverfehler auslösen, wenn ein Benutzer schlechte Zeichen eingibt (was ist, wenn sie einen Pfeil wie < - zeichnen).
Was wäre besser ist, einfach auf die Seite mit einem ModelState
Fehler zurück, der sagt "Bitte verwenden Sie keine HTML-Zeichen" oder etwas Sinnvolles.
Aber wie soll das erreicht werden? Der Fehler wird weit geworfen, bevor er zu meinem Code gelangt. Außerdem möchte ich es nicht einfach über validateRequest="false"
abschalten und dann jedes einzelne Formular in meiner Anwendung auf HTML-Zeichen überprüfen und einen Fehler zurückgeben.
Gibt es eine Möglichkeit, diese Art der Validierung aktiviert zu lassen, aber nur anders zu behandeln?
-Code zur Klarstellung:
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
Mein Problem aktualisiert, um etwas Code für den Kontext aufzunehmen. –