Se detectó un error en la redirección del valor Request.Form potencialmente peligroso del cliente

Cuando busqué este error, obtuve muchas soluciones y en todas partes obtuve la misma respuesta. Pero no pude resolver en mi caso.

Error

A potentially dangerous Request.Form value was detected from the client (ctl00$ContentPlaceHolder1$tbEditor="<span>
<span><sp...").

Explicación

Como pude saber por otras respuestas, si quiero resolver este error, tendré que configurar <httpRuntime requestValidationMode="2.0" /> en mi web.config en <system.web> etiquetar como lo he hecho. Y otra configuración en la directiva de página. ValidateRequest="false"que he hecho y funciona bien también para esta página.

Problema

But after that when i want to move from this page to any other .aspx page then i am getting as above error.

Aqui mi web.config

    <system.web>
        <authentication mode="Forms" />
        <compilation debug="true" targetFramework="4.0">
            <assemblies>
                <add assembly="System.Data.Services.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>
        <httpRuntime requestValidationMode="2.0" />
    </system.web>

La directiva de mi página donde quiero solucionar este problema.

<%@ Page Title="" Language="C#" MasterPageFile="~/AdminMaster.master" AutoEventWireup="true" CodeFile="EmailSetting.aspx.cs" Inherits="EmailSetting" ValidateRequest="false" %>

preguntado el 12 de junio de 14 a las 11:06

¿Cómo te mueves de una página a otra? Desactivar ciegamente la validación en todo el sitio probablemente no sea una buena idea, está ahí por una razón. El error indica que está publicando código HTML en un control llamado tbEditor. ¿Estás haciendo eso? ¿Necesitas hacerlo? -

tbEditor está pasando un valor de una página a otra página, no sé cómo está pasando. Y estoy usando un enlace de página maestra simple para pasar de una página a otra. -

El punto es que el valor que se envía en el formulario es una cadena HTML. Por lo general, no es una buena idea por varias razones. ¿Por qué el valor es una cadena HTML en este caso? Lo más probable es que pueda solucionar esto pasando alguna otra forma de datos en lugar de código HTML. -

aquí estoy usando el editor de arranque en el que permito que el usuario formatee su documento para el correo electrónico. Y el texto de este editor lo envío como un correo electrónico usando el código:

1 Respuestas

Causar

ASP.Net por defecto valida todos los controles de entrada para contenido potencialmente inseguro que puede conducir a Cross Site Scripting e inyecciones de SQL. Por lo tanto, no permite dicho contenido al lanzar la excepción anterior. De forma predeterminada, se recomienda permitir que esta verificación se realice en cada devolución de datos.

Opción 1

En ese caso, puede evitar esta excepción configurando la etiqueta ValidateRequest en la Directiva @Page en falso.

<%@ Page Language="C#" AutoEventWireup="true" ValidateRequest = "false" ..>

Esto deshabilitará la validación de solicitudes para la página en la que ha establecido el indicador ValidateRequest en falso. Si desea deshabilitar esta verificación en toda su aplicación web, deberá configurarla como falsa en su sección web.config

Opción 2

<pages validateRequest ="false" />

Opción 3

Para .Net 4.0 o marcos superiores, también deberá agregar la siguiente línea en la sección para que lo anterior funcione.

<httpRuntime requestValidationMode = "2.0" />

Pruebe esta solución:

<system.web>
    <compilation debug="true" targetFramework="4.0" />
    <httpRuntime requestValidationMode="2.0" />
</system.web>

Leer más en MSDN

Respondido el 12 de junio de 14 a las 11:06

No puedo eliminar los ensamblajes que se están utilizando. Cuando los estoy eliminando, recibo un error. - govinda rajbhar

todas sus opciones de respuesta son verdaderas, pero en mi caso quiero deshabilitar la validación de solicitudes para una sola página y, como usted sugirió, lo intenté. Pero en mi caso, no recibo un error en esta página. Recibo un error cuando estoy redirigiendo desde esta página a cualquier otra. .aspx page como he mencionado anteriormente. - govinda rajbhar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.