Question

J'implémente une HttpRequestValidationException dans mon gestionnaire Application_Error et, si possible, je souhaite afficher un message personnalisé.

Maintenant, je pense au StatusCode.Dans mon exemple actuel, il envoie un 200, ce qui, à mon avis, ne devrait pas être fait.Je voudrais plutôt envoyer la (à mon humble avis) 400 Bad Request plus appropriée.Cependant, en même temps, j'aimerais utiliser Response.Write pour saisir un message personnalisé.Firefox l'affiche correctement, mais IE7 me donne la page d'erreur Internet Explorer inutile 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 La RFC n'est pas vraiment claire ici.

Je me demande donc si l'envoi d'un HTTP 200 pour une page d'erreur provoqué par une HttpRequestValidationException est une bonne pratique ou non ?Existe-t-il de bonnes alternatives ?

Était-ce utile?

La solution

Un code de réponse HTTP 200 n'indique pas une erreur.Cela indique que tout allait bien.Vous ne devez pas utiliser un code de réponse 200 pour une erreur.

Internet Explorer affiche sa page « Erreurs conviviales » si la réponse fait moins de 512 octets.En savoir plus sur cette question : http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx,

Autres conseils

Non, ce n'est certainement pas une bonne pratique.Les codes d'état 2XX signifient (entre autres) que le la demande est valide.Ce qui est tout le contraire de lever une HttpRequestValidationException.

Je ne sais pas comment faire en sorte que IE se comporte correctement, malheureusement.Un moyen légèrement meilleur que d'envoyer un 200 serait de le rediriger vers une page d'erreur, mais encore loin d'être parfait.

Internet Explorer affiche ce qu'ils appellent un « message d'erreur HTTP convivial » lorsque la réponse est 4xx ou 5xx.Cette option peut être désactivée par l'utilisateur dans la boîte de dialogue Tools.Options.Advanced[Browsing] d'IE.

Envoyer un 200 pour une page d'erreur est généralement une mauvaise pratique.Une alternative serait d'avoir une page "Erreur" valide qui est censé pour afficher les messages d'erreur (donc un 200 serait correct), puis utilisez une redirection 3xx vers cette page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top