2009-09-22 20 views
17

Estoy tratando de conseguir alrededor del error "valor Request.Form potencialmente peligroso" y estoy teniendo ninguna suerte. Sí, sí, he leído todas las demás preguntas relacionadas con StackOverflow y ninguna de ellas me acerca a una respuesta. Estoy usando [ValidateInput(false)] en todas las acciones de controlador relacionadas ... y lo he comprobado muchas veces. Estoy usando ValidateRequest='false' en todas las vistas ASPX relacionadas.ValidateInput atributo no parecen funcionar en ASP.NET MVC

estoy usando ASP.NET MVC 2 Vista Previa 1, pero no creo que eso es un problema ya que el error se genera menor en el marco; Page.ProcessRequest para ser exacto. No puedo ver nada que esté haciendo mal, incluso configuré <page validateRequest='false'> en el archivo web.config y eso tampoco lo resolvió.

Respuesta

7

... Bien contestado a mi propio problema ... el culpable: Html.RenderAction<T>. Si hay alguna llamada a otras acciones en el contexto de la petición (por ejemplo, desde la página maestra o parciales niño) estas acciones también necesita tener [ValidateInput(false)] valor apropiado. Sin embargo, esto parece ser un problema con MVC o la forma en que el objeto de la página funciona en ASP.NET, ya que es un error realmente ofuscado de encontrar.

32

Con asp.net 4, que necesitará para configurar el modo de validación en el web.config también.

Conjunto lo siguiente como un hijo del elemento <system.web>:

<httpRuntime requestValidationMode="2.0"/> 

Asp.Net 4 establece el requestValidationMode a 4.0 por defecto, lo que indica al sistema para llevar a cabo la validación de solicitudes antes de la fase BeginRequst de la petición HTTP . La validación ocurrirá antes de que el sistema llegue al atributo de acción que le indica que no valide la solicitud, lo que hace que el atributo sea inútil. El establecimiento de requestValidationMode = "2.0" revertirá al comportamiento de validación de solicitud de asp.net 2.0, lo que permite que el atributo ValidateInput funcione como se espera.

(gracias Jim - upvotes belong here)

+0

¿Hay algunas desventajas/contras cuando se utiliza este enfoque? ¿Hay alguna forma de configurar por acción? –

+0

U son hombre salvavidas. También me gustaría saber si hay alguna desventaja para esto. –

1

hay que añadir el atributo a cada acción del controlador que se invoca en su solicitud, es decir, todas las solicitudes parciales.

Cuestiones relacionadas