Pourquoi j'obtiens "une requête potentiellement dangereuse.La valeur du formulaire a été décelée par le client" erreur?
j'ai créé un nouveau ASP.NET MVC 3 / .net Framework 4.0 site using the" Internet Application " template. J'ai utilisé Nuget pour installer le Windows Azure Web Role (MVC3) le paquet, puis le Revue du service de contrôle d'accès pour configurer Windows Live ID et Google authentication.
assez tôt, je suis tombé sur la " demande potentiellement dangereuse.La valeur du formulaire a été détectée à partir de l'erreur du client et a suivi le article dans le Windows Identity Foundation wiki pour tenter de le résoudre. Malheureusement, rien de ce que j'ai essayé ne fonctionne, y compris:
<httpRuntime requestValidationMode="2.0"/>
et<pages validateRequest="false">
à la fois dans le réseau racine.config et Vuesweb.configcopier
SampleRequestValidator
dans le WIF SDK dans le projet et la configuration de<httpRuntime requestValidationType="SampleRequestValidator"/>
dans les deux web.les configs
j'ai aussi essayé des variantes de ceux-ci sans succès.
tous des idées?
Voici l'exception complète:
Détails De L'Exception: Système.Web.HttpRequestValidationException: une requête potentiellement dangereuse.La valeur du formulaire a été détectée par le client (wresult="<t:RequestSecurityTo...
").
Description: la Validation de la requête a détecté une valeur d'entrée client potentiellement dangereuse, et le traitement de la requête a été interrompu. Cette valeur peut indiquer une tentative de compromis la sécurité de votre application, telle qu'une attaque de script sur plusieurs sites. Pour permettre aux pages de passer outre aux paramètres de validation des requêtes d'application, définissez l'attribut requestValidationMode dans la section de configuration httpRuntime à requestValidationMode="2.0". Exemple: <httpRuntime requestValidationMode="2.0" />
. Après avoir défini cette valeur, vous pouvez désactiver la validation de la requête en définissant validateRequest= "false" dans la directive Page ou dans la directive <pages>
section de configuration. Toutefois, il est fortement recommandé que votre demande explicitement vérifier toutes les entrées dans ce cas. Pour plus d'information, voir http://go.microsoft.com/fwlink/?LinkId=153133.
Trace De La Pile:
[HttpRequestValidationException (0x80004005): une requête potentiellement dangereuse.La valeur du formulaire a été détectée par le client (wresult="<t:RequestSecurityTo...
").]
System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection) +8755668 System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection) +122 System.Web.HttpRequest.get_Form() +114 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.IsSignInResponse(HttpRequest request) +75 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request, Boolean onPage) +205 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.CanReadSignInResponse(HttpRequest request) +41 Microsoft.IdentityModel.Web.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +117 System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +148 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
9 réponses
vous pourriez essayer de décorer l'action du controller vers laquelle vous postez (et celle qui lance cette exception) avec le [ValidateInput(false)]
l'attribut (en laissant <httpRuntime requestValidationMode="2.0"/>