2012-08-23 61 views
8

Tôi có một trình soạn thảo WYSIWYG được nhúng trên một điều khiển người dùng rõ ràng là đi vào một trang web. Khi tôi gửi trang, tôi nhận được "Một giá trị Request.Form nguy hiểm tiềm tàng đã được phát hiện từ khách hàng" ngoại lệ. Trong các phiên bản trước của .NET, tôi sẽ tắt ValidateRequest cho trang.ASP.NET 4.5 Một giá trị Request.Form nguy hiểm tiềm ẩn đã được phát hiện từ máy khách

Tuy nhiên, trong .NET 4.5, dường như có thuộc tính của ValidateRequestMode. Khi tôi đặt cài đặt này thành vô hiệu hóa, tôi vẫn tiếp tục gặp lỗi. Hiện không có nhiều ra có liên quan đến lỗi NET 4.5. Vì vậy, không ai biết giải pháp?

Xin cảm ơn trước.

+2

Thay vào đó, bạn có thể sử dụng javascript để mã hóa nội dung của trình chỉnh sửa wyswing của bạn trước khi gửi tới máy chủ. Bằng cách đó bạn không cần phải vô hiệu hóa xác thực. – m0s

+0

Tôi đang sử dụng trình chỉnh sửa TinyMCE mới nhất (phiên bản 3.5.6) và có tùy chọn tích hợp để mã hóa nội dung mà tôi đã sử dụng. Vì vậy, điều này nên mã hóa nó. Nhưng tôi vẫn gặp lỗi. – Ricketts

Trả lời

13

Tôi đã tìm thấy sự cố. Nó phải làm với trình soạn thảo TinyMCE cần phải có nội dung được mã hóa trước mã sau khi cố gắng đọc và đăng nó. Giải pháp đã được mã hóa thông qua javascript như m0s đề xuất. TinyMCE có tùy chọn tích hợp sẵn, bạn có thể đặt

encoding: "xml" 

Tôi đã đặt nhưng nó không mã hóa dấu nháy, mà tôi có trong nội dung. Vì vậy, để khắc phục nó, bạn phải thêm video này vào chức năng TinyMCE init trên trang:

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

Tôi tìm thấy giải pháp ở đây: http://blog.tentaclesoftware.com/archive/2012/05/21/asp-net-4-0-tinymce-and-ldquoa-potentially-dangerous-request.aspx

Hy vọng rằng sẽ giúp ai đó!

+0

Bạn không thể tải văn bản sau này như thế này. TinyMCE sẽ không xử lý chúng. – Akbari

0

Tôi đã giải quyết vấn đề này bằng cách thêm [AllowHtml] trước thuộc tính nội dung public virtual string content{ get; set; }.

Các vấn đề liên quan