requestValidationMode 4.5 vs 2.0
Est-il une différence entre requestValidationMode="4.5" et requestValidationMode="2.0"? J'ai un .net 4.5 application, il y a un contrôle qui je ne veux pas valider, que les utilisateurs peuvent entrer des balises html dans:
<asp:TextBox ID="txtTitle" runat="server" ValidateRequestMode="Disabled" />
dans mon web.config j'ai:
<compilation debug="true" strict="false" explicit="true" targetFramework="4.5">...</compilation>
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" />
d'abord j'ai mis requestValidationMode="4.5" mais cela ne fonctionne pas, j'ai toujours l'erreur sur les étiquettes - "potentiellement dangereuse Demande.Formulaire de valeur a été détectée par le client ..." dès qu'il serait de soumettre le formulaire. Cependant, si je l'ai mis à requestValidationMode="2.0", il fonctionne, je suis en mesure de frapper la PageLoad et d'encoder la valeur de ce champ.
source d'informationauteur Paritosh
Vous devez vous connecter pour publier un commentaire.
Oui il y a une différence entre les deux. Rien requestValidationMode spécifié comme 4.0 ou au-dessus va utiliser la 4.0 façon et tout requestValidationMode spécifié ci-dessous 4.0 utiliser le 2.0. Ci-dessous une description des deux:
http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode.aspx
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 qu'une requête HTTP de données est accessible. Cela garantit que la demande de validation est déclenché avant que les données telles que les cookies et les Url sont accessibles lors de la demande. La demande de validation des paramètres des pages de élément (le cas échéant) dans le fichier de configuration ou de la directive @ Page 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 de é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 pour valider.
Comme une note: Il existe d'autres solutions, étant donné que vous utilisez asp.net 4.5 vous voudrez peut-être chercher à la validation par le contrôle de niveau, de cette façon, vous pouvez laisser le requestValidationMode propriété dans le web.config à 4,5 et modifier uniquement sur les contrôles qui en ont besoin.
http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx
Je suis d'accord avec Chris_dotnet de réponse.
Cependant, je voudrais ajouter une petite note de côté:
Dans votre site web.fichier de configuration, placez le
requestValidationMode="2.0"
balise sous la localisation balise de sorte que vous ne permettre, une page spécifique à cette "dérogation" pour passer à la validation.