asp.net asp.net-4.5

asp.net - requestValidationMode 4.5 vs 2.0



asp.net-4.5 (2)

¿Hay alguna diferencia entre requestValidationMode = "4.5" y requestValidationMode = "2.0"? Tengo una aplicación .net 4.5, hay un control que no quiero validar, ya que los usuarios pueden ingresar etiquetas html en:

<asp:TextBox ID="txtTitle" runat="server" ValidateRequestMode="Disabled" />

en mi web.config tengo:

<compilation debug="true" strict="false" explicit="true" targetFramework="4.5">...</compilation> <httpRuntime targetFramework="4.5" requestValidationMode="2.0" />

inicialmente puse requestValidationMode = "4.5" pero eso no funcionó, aún obtendría el error acerca de las etiquetas: "Se detectó un valor Request.Form potencialmente peligroso del cliente ..." tan pronto como se envíe el formulario . Sin embargo, si lo configuro en requestValidationMode = "2.0", puedo golpear la carga de la página y codificar el valor de ese campo.


Estoy de acuerdo con la respuesta de Chris_dotnet.

Sin embargo, me gustaría añadir una pequeña nota al margen:

En su archivo web.config, incluya la requestValidationMode="2.0" debajo de la etiqueta de ubicación para que solo permita que una página específica tenga esta "exención" para omitir la validación.

<location path="YourPage.aspx"> <system.web> <httpRuntime requestValidationMode="2.0"/> </system.web> </location>


Sí, hay una diferencia entre los dos. Cualquier requestValidationMode especificado como 4.0 o superior utilizará la forma 4.0 y cualquier requestValidationMode especificado como la siguiente 4.0 utilizará la forma 2.0. A continuación se muestra una descripción de los dos:

http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestvalidationmode.aspx

4.0 (el predeterminado). El objeto HttpRequest establece internamente un indicador que indica que la validación de la solicitud debe activarse cada vez que se accede a los datos de la solicitud HTTP. Esto garantiza que la validación de la solicitud se active antes de que se acceda a datos como las cookies y las URL durante la solicitud. Se ignoran los ajustes de validación de solicitud del elemento de páginas (si corresponde) en el archivo de configuración o de la directiva @ Página en una página individual.

2.0. La validación de solicitudes está habilitada solo para páginas, no para todas las solicitudes HTTP. Además, la configuración de validación de la solicitud del elemento de páginas (si corresponde) en el archivo de configuración o de la directiva @ Página en una página individual se usa para determinar qué página solicita validar.

Como nota: hay otras soluciones, ya que está usando asp.net 4.5, puede buscar validar en un nivel por control, de esa manera puede dejar la propiedad requestValidationMode en web.config en 4.5 y solo cambiarla. En controles que lo necesitan. http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx