Lorsque j'appelle ma webservice, la sorcière prend deux paramètres:
Une valeur Request.Path potentiellement dangereuse a été détectée par le client (&).
Routeconfig:
config.Routes.MapHttpRoute(
name: "PropertiesSearch",
routeTemplate: "api/property/Search/{category}/{query}",
defaults: new { controller = "Property", action = "Search", category = "common", query = string.Empty }
);
Méthode de contrôle:
[HttpGet]
public SearchResult Search(string category, string query)
{
}
Quand j'appelle l'api avec:
/ api/property/search/homes/areaId% 3D20339% 26areaId% 3D20015
Une valeur Request.Path potentiellement dangereuse a été détectée par le client (&).
Ce faisant:
/ api/property/search/homes /? query = areaId% 3D20339% 26areaId% 3D20015
fonctionne bien.
Comment résoudre le problème de décodage du routage?
Scott Hanselman blogué à ce sujet . Vous voudrez peut-être vérifier la propriété requestPathInvalidCharacters
de la <httpRuntime>
node dans votre web.config.
Personnellement, j'éviterais de tels caractères dans la partie uri et je mettrais simplement ces valeurs comme paramètres de chaîne de requête.