Le problème à résoudre concerne la « Request Validation » qui empêche de recevoir certains caractères comme notamment les balises < … >
Il s’agit d’une requête POST qui sera traitée, analysée puis enregistrée via LINQ, les strings seront donc « parameterized ».
Cependant, cela n’est pas le cas de l’ensemble du site nous devons donc appliquer cela à une zone donnée.
- validateRequest= »false »
ce paramètre permet de supprimer la validation en .NET 2.0
Il s’insère soit dans la page ciblée :
1<@ Page validateRequest="false" %>
soit dans le fichier Web.config :
12345<configuration><system.web><pages validateRequest="false" /></system.web></configuration>
- <httpRuntime requestValidationMode= »2.0″ />
A partir d’ASP.NET 4 ou plus, cet élément du Web.config est indispensable pour que l’annulation du REQUEST VALIDATION soit prise en compte.
En effet, depuis ASP.NET 4, la validation de la requête se fait plus tôt dans le cycle de vie de la page.
123<system.web><httpRuntime requestValidationMode="2.0" /></system.web>
- « location » : Ciblage d’une page ou d’un répertoire
La touche finale, il faut impérativement n’affecter que les pages concernées, à cette fin nous utilisons un élement du Web.config qui permet de cibler une location :
1234567<configuration><location path="UploadPage.aspx"><system.web><httpRuntime maxRequestLength="128"/></system.web></location></configuration>
- Le résultat final est celui-ci :
123456<location path="DMZdirectory"><system.web><httpRuntime requestValidationMode="2.0" /><pages validateRequest="false" /></system.web></location>
Sources :
https://msdn.microsoft.com/en-us/library/hh882339(v=vs.110).aspx
https://msdn.microsoft.com/en-us/library/b6x6shw7(v=vs.100).aspx
Please follow and like us: