2012-08-23 6 views
8

Ich habe einen WYSIWYG-Editor in ein Benutzersteuerelement eingebettet, das offensichtlich in eine Webseite eingeht. Wenn ich die Seite absende, erhalte ich die Ausnahme "Eine potentiell gefährliche Anfrage.Form wurde vom Client erkannt". In früheren Versionen von .NET würde ich ValidateRequest für die Seite einfach deaktivieren.ASP.NET 4.5 Ein potentiell gefährlicher Request.Form-Wert wurde vom Client erkannt

In .NET 4.5 scheint es jedoch eine Eigenschaft von ValidateRequestMode zu haben. Wenn ich dies auf "disabled" (deaktiviert) stelle, erhalte ich weiterhin den Fehler. Es gibt noch nicht viel in Bezug auf .NET 4.5 Fehler, also kennt jemand die Lösung?

Vielen Dank im Voraus.

+2

Als Alternative könnten Sie Javascript verwenden, um den Inhalt Ihres WYSWING-Editors vor dem Senden an den Server zu verschlüsseln. Auf diese Weise müssen Sie die Validierung nicht deaktivieren. – m0s

+0

Ich benutze den neuesten TinyMCE-Editor (Version 3.5.6) und es hat eine eingebaute Option zum Verschlüsseln des Inhalts, den ich bereits benutze. Also sollte dies kodieren. Aber ich bekomme immer noch den Fehler. – Ricketts

Antwort

13

Ich habe das Problem gefunden. Es hatte damit zu tun, dass der TinyMCE-Editor den Inhalt vor dem Code kodieren musste, bevor er versuchte, ihn zu lesen und zu posten. Die Lösung bestand darin, über Javascript so zu codieren, wie es m0s vorgeschlagen wurde. TinyMCE hat eine eingebaute Option Sie

encoding: "xml" 

einstellen Was ich gesetzt hatte, aber es kodiert nicht Apostrophe, die ich in den Inhalt hatte. Also, um es zu beheben, müssen Sie dies mit der Funktion TinyMCE init hinzufügen auf der Seite:

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"); 
    }); 
} 

Ich fand die Lösung hier: http://blog.tentaclesoftware.com/archive/2012/05/21/asp-net-4-0-tinymce-and-ldquoa-potentially-dangerous-request.aspx

Hoffe, dass jemand hilft!

+0

Sie können den Text danach nicht so laden. TinyMCE wird sie nicht verarbeiten. – Akbari

0

Ich löste dies durch Hinzufügen [AllowHtml] vor Inhalt Eigenschaft public virtual string content{ get; set; }.

Verwandte Themen