web-dev-qa-db-fra.com

Une valeur Request.Form potentiellement dangereuse a été détectée par le client - ASP.NET MVC

Je reçois cette erreur dans mon application ASP.NET MVC où je prends une entrée HTML à partir d'un WYSIWYG, donc je ne veux pas que le contenu soit validé.

J'ai essayé la solution que j'ai trouvée ici mais cela ne fait aucune différence dans mon application MVC. J'ai également essayé de le faire dans le web.config mais encore une fois - pas de joie.
Est-ce un bogue dans ASP.NET MVC ou quelque chose?

36
Ryall

Dans MVC, vous utiliseriez l'attribut ValidateInput (false).

Vous devez ensuite assainir vos entrées, par ex. avec quelque chose comme this (intégré à ASP.NET 4.5+; utilisez le package NuGet pour plus tôt).

49
Craig Stuntz

Dans MVC 3 et versions ultérieures, vous pouvez également utiliser le [AllowHtml] attribut. Cet attribut vous permet d'être plus précis en ignorant la validation pour une seule propriété de votre modèle.

https://docs.Microsoft.com/en-us/dotnet/api/system.web.mvc.allowhtmlattribute?view=aspnet-mvc-5.2

28
Loren Paulsen

Placez simplement cet attribut: [ValidateInput (false)] sur la méthode d'action sur le contrôleur qui gère la publication du formulaire.

21
Pedro Jacinto

utilisation <httpRuntime requestValidationMode="2.0" /> dans la configuration Web

4
JGilmartin

Dans votre méthode d'action de contrôleur, (celle qui apporte ceci) ajoutez [ValidateInput (false)]

Exemple

    [HttpPost]
    [ValidateInput(false)]
    public ActionResult Insert(FormCollection formCollection, Models.Page page)
    {
        //your code
        return View();
    }
1
yogihosting