hm könnte sein :-) kann ich das in der apsx.cs irgendwie pro Seite abschalten? Ich will es ja nicht für meine komplette Anwendung ausschalten sondern nur für ein einziges UI.Control.
function EndRequestHandler(sender, args) { if (args.get_error() != undefined && args.get_error().httpStatusCode == '500') { var errorMessage = args.get_error().message args.set_errorHandled(true); //ToDo: per javascipt den Inhalt Encoden __doPostback('','') }
}
Ähnliche Funktionen und Methoden sollte es auch mit jQuery geben, was ich bevorzugt in die Seite einbauen würde. Aber mit MS Ajax hatte ich etwas ähnliches schon mal umgesetzt.
Grundsätzlich kannst Du aber auch gleich in dem blur Event der Textbox reagieren und den Inhalt Encodieren, oder auch einen Custom Validator an die Textbox binden und dort den Text ersetzen.
Als dritte Option kann man natürlich auch den ValidateRequest Request auf der Seite abschalten. Dann solltest Du aber unbedingt mit soetwas wie antixss arbeiten. Alle Eingaben von einer Seite genau zu überprüfen ist aber - unabhängig davon - immer unbedingt Pflicht.
Erst im Nachhinein zu encoden, wenn der Server sich beschwert, halte ich für gefährlich. Was, wenn die Request-Validation mal irgendwas gefährlich nicht anmeckert?
Dazu ist vielleicht auch diese Diskussion bei stackoverflow interessant: http://stackoverflow.com/questions/1510903/is-it-necessary-to-htmlencode-textbox-values-if-asp-net-request-validation-is-en
Da stellt sich natürlich die Frage: warum bekommt Marcus den Fehler auch für eine Textbox? Die sollte laut diesem Thread eigentlich automatisch encoden.
Das hatte ich dann auch angemerkt, dass man grundsätzlich die Eingaben überprüfen sollte, z.B. mit AnitXss (serverseitig). Und wenn man ein <h1> als Eingabe benötigt, dann gibt es nur den Weg ValidateRequest abzuschalten, oder aber vorher per Javascript etwas zu unternehmen. Natürlich könnte man den Inhalt auch erst an einen Webservice senden....
kann ich das in der apsx.cs irgendwie pro Seite abschalten? Ich will es ja nicht für meine komplette Anwendung ausschalten sondern nur für ein einziges UI.Control.