2011-04-18 2 views
0

J'utilise asp.net MVC3L'utilisation d'un URI dans une URL MVC

J'ai un modèle d'URL comme http://mysite.com/product/ {id}

Tout va bien si j'utiliser un simple identifiant cependant nos cartes d'identité sont URIs et cela provoque un problème.

Même quand je l'encode en utilisant id HttpUtility.UrlEncode MVC me donne l'erreur suivante:

Une valeur Request.Path potentiellement dangereuse a été détectée à partir du client (:).

Comment puis-je le faire fonctionner sans simplement désactiver cette vérification pour tout? Et pourquoi un uri encodé est dangereux dans l'URL de toute façon?

grâce

Répondre

0

Une approche serait de mettre en œuvre votre propre RequestValidator et l'utiliser avec votre application.

Le lien ci-dessous a également un exemple http://msdn.microsoft.com/en-us/library/system.web.util.requestvalidator.aspx

Edit:

Apparemment, il y a un moyen de spécifier quels caractères ne sont pas valides - http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestpathinvalidcharacters.aspx. Définir la liste à vide apparemment ferait l'affaire. Je n'ai pas vraiment essayé celui-là.