J'implémente une exception HttpRequestValidationException dans mon gestionnaire Application_Error et, si possible, je souhaite afficher un message personnalisé.Response.StatusCode et Internet Explorer - Afficher un message personnalisé?
Maintenant, je pense au StatusCode. Dans mon exemple actuel, il en envoie 200, ce qui, je pense, ne devrait pas être fait. Je voudrais envoyer le (IMHO) plus approprié 400 Bad Request à la place. Cependant, en même temps, j'aimerais utiliser Response.Write pour entrer un message personnalisé. Firefox l'affiche correctement, mais IE7 me donne la page d'erreur Internet Explorer non utile par défaut. D'un côté, je suppose qu'Internet Explorer suppose simplement que tout <> 200 n'a tout simplement pas de "bon" contenu, et le RFC is not really clear ici.
Donc, je me demande juste, envoie un HTTP 200 pour une page d'erreur causée par une bonne pratique HttpRequestValidationException ou non? Y a-t-il de bonnes alternatives?
Merci! Ma solution: J'ai créé un> 512 Byte Error.aspx, mais par Global.asax définira le StatusCode à 400, puis faire un Server.Transfer au lieu de Response.Redirect. Fonctionne bien avec AJAX et Internet Explorer. –
Juste pour ajouter: Normalement, un Response.Redirect serait également une solution viable. Cependant, si vous utilisez ASP.net AJAX, vous serez également redirigé. Server.Transfer vous permet de rester sur la page en cours pour les requêtes AJAX et gérer l'erreur en JavaScript. Voir ma question HttpRequestValidationException. –