Comment désactiver la validation de la requête sans définir RequestValidationMode sur 2.0?
Nous avons juste mis à jour pour ASP.NET 4.0, et a constaté que requestValidation ne fonctionne plus. La MSDN docs suggèrent nous avons besoin de définir requestValidationMode dans le web.config pour 2.0:
- 4.0 (valeur par défaut). L'objet HttpRequest en interne définit un indicateur qui indique que la demande de validation doit être déclenchée à chaque fois que
toute requête HTTP de données est accessible. Cela garantit que la demande
la validation est déclenché avant que les données telles que les cookies et les Url sont
accessible lors de la demande. La demande de validation des paramètres de la
pages élément (le cas échéant) dans le fichier de configuration ou de la Page @
la directive dans une page individuelle sont ignorés.- 2.0. La demande de validation est activé uniquement pour les pages, pas pour toutes les requêtes HTTP. En outre, la demande de validation des paramètres des pages
élément (le cas échéant) dans le fichier de configuration ou de la directive @ Page
dans une page individuelle sont utilisés pour déterminer les demandes de page à
valider.
Ce sera le travail pour nous, mais je suis un peu perplexe. Il semble que nous sommes en train de mettre cela dans une legacy/mode de compatibilité. Sûrement, il devrait être possible d'avoir la version 4.0 de comportement, mais encore une option pour désactiver cette fonction sur une page?
source d'informationauteur Danny Tuppeny
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé un moyen d'atteindre cet objectif sans changer RequestValidationMode à 2,0 pour l'ensemble du site:
Vous pouvez créer un sous-répertoire pour la page que vous souhaitez désactiver la demande de validation et d'ajouter un nouveau site web.la configuration de ce répertoire avec RequestValidationMode établie à 2,0, de cette façon seulement ce répertoire de travail en 2.0 en mode sans affecter toutes les autres demandes qui 4.0 mode.
Je pense que vous pouvez ajouter un emplacement de la section principale de votre site web.config spécifiant une seule page, mais je n'ai pas testé encore.
Quelque chose comme ceci:
Espère que cela vous aide, m'a aidé !
Votre meilleur pari est de remplacer la requestValidationType avec votre propre code:
<httpRuntime requestValidationType="YourNamespace.YourValidator" />
MSDN lien
Il semble qu'il n'est pas possible de désactiver cette sur ou hors d'une page dans requestValidationMode 4.0.
Ce livre blanc décrit les dernières modifications .Net 4.0, de ce qui semble être un. Même le livre blanc suggère de revenir en arrière pour requestValidationMode 2.0
Mais il est également utile d'recommande
sans donner d'indications sur la meilleure façon de résoudre ces problèmes
Vous pouvez définir
ValidateRequest
à faux dans la directive de page: