J'ai un problème de code hérité qui nécessite que je prenne en charge les URL aléatoires comme s'il s'agissait de demandes pour la page d'accueil. Certaines URL contiennent des caractères qui génèrent l'erreur «Une valeur Request.Path potentiellement dangereuse a été détectée par le client (&)» . Le site est écrit avec ASP.Net MVC 3 (en C #) et s'exécute sur IIS 7.5.
Voici un exemple d'URL ...
http://mywebsite.com/Test123/This_&_That
Voici comment j'ai configuré ma route fourre-tout (j'ai d'autres routes pour attraper des pages spécifiques) ...
routes.MapRoute(
"Default", // Route name
"{garb1}/{garb2}", // URL with parameters
new { controller = "Website", action = "Home", garb1 = UrlParameter.Optional, garb2 = UrlParameter.Optional } // Parameter defaults
);
J'ai ajouté les éléments suivants à mon fichier web.config ...
<configuration>
<system.web>
<pages validateRequest="false" />
<httpRuntime requestValidationMode="2.0" />
</system.web>
<configuration>
J'ai également ajouté l'attribut ValidateInput à l'action qui devrait intercepter les URL ...
public class WebsiteController : Controller
{
[ValidateInput(false)]
public ActionResult Home()
{
return View();
}
}
Mais j'obtiens toujours l'erreur. Des idées pourquoi? Ai-je oublié quelque chose? Pour le moment, je suis juste en cours d'exécution sur mon serveur de développement local (je n'ai pas encore essayé ces correctifs en production).
Réponses:
Bien que vous puissiez essayer ces paramètres dans le fichier de configuration
J'éviterais d'utiliser des caractères comme «&» dans le chemin de l'URL en les remplaçant par des traits de soulignement.
la source
J'ai fait face à ce type d'erreur. pour appeler une fonction de rasoir.
résolvez cela en changeant la ligne
de
à
où se trouve mon route.config
la source
Si vous souhaitez autoriser les balises Html uniquement pour quelques zones de texte dans mvc
Tu peux faire une chose
dans le contrôleur
la source
Nous recevions la même erreur dans Fiddler en essayant de comprendre pourquoi notre visionneuse de carte Silverlight ArcGIS ne chargeait pas la carte. Dans notre cas, il s'agissait d'une faute de frappe dans l'URL du code. Il y avait un signe égal pour une raison quelconque.
http: = // someurltosome / awesome / place
au lieu de
http: // someurltosome / awesome / place
Après avoir retiré ce signe égal, cela a très bien fonctionné (bien sûr).
la source
Vérifiez que les lignes ci-dessous sont présentes dans votre fichier web.config
<system.web> <httpRuntime requestPathInvalidCharacters="" /> </system.web>
la source