2012-08-23 21 views
8

Tengo un editor WYSIWYG incrustado en un control de usuario que obviamente va a una página web. Cuando envío la página, obtengo la excepción "Se detectó un valor Request.Form potencialmente peligroso desde el cliente". En versiones anteriores de .NET, simplemente desactivaba ValidateRequest para la página.ASP.NET 4.5 Se detectó un valor Request.Form potencialmente peligroso desde el cliente

Sin embargo, en .NET 4.5, parece tener una propiedad de ValidateRequestMode. Cuando configuro esto como deshabilitado, sigo recibiendo el error. No hay mucho por ahí aún con respecto a los errores de .NET 4.5. ¿Alguien sabe la solución?

Gracias de antemano.

+2

Como alternativa, puede usar javascript para codificar el contenido de su editor de wyswing antes de enviarlo al servidor. De esta forma no es necesario que deshabilite la validación. – m0s

+0

Estoy usando el editor más reciente de TinyMCE (versión 3.5.6) y tiene una opción incorporada para codificar el contenido, que ya estoy usando. Entonces esto debería codificarlo. Pero sigo recibiendo el error. – Ricketts

Respuesta

13

Encontré el problema. Tenía que ver con el editor TinyMCE que necesitaba tener el contenido codificado antes del código detrás de tratar de leerlo y publicarlo. La solución fue codificar a través de javascript como se sugirió. TinyMCE tiene una opción integrada puede establecer

encoding: "xml" 

¿Qué me había propuesto, pero no codifica apóstrofes, que tuve en el contenido. Así pues, para solucionarlo, hay que añadir esto a la función init TinyMCE en la página:

TinyMCE 3.x

setup: function (ed) { 
    ed.onSaveContent.add(function (i, o) { 
     o.content = o.content.replace(/&#39/g, "&apos"); 
    }); 
} 

TinyMCE 4.x

setup: function(editor) { 
    editor.on("SaveContent", function(i) { 
     i.content = i.content.replace(/&#39/g, "&apos"); 
    }); 
} 

encontré la solución aquí: http://blog.tentaclesoftware.com/archive/2012/05/21/asp-net-4-0-tinymce-and-ldquoa-potentially-dangerous-request.aspx

Espero que ayude a alguien!

+0

No puede cargar el texto después de esta manera. TinyMCE no los procesará. – Akbari

0

Lo resolví agregando [AllowHtml] antes de la propiedad de contenido public virtual string content{ get; set; }.

Cuestiones relacionadas