在ASP.NET后从TinyMCE的 - 验证检测到危险的客户端输入
-
22-07-2019 - |
题
我得到这个错误,当我从 TinyMCE的在ASP.NET MVC图。<张贴/ p>
错误:
请求验证已经检测到潜在危险的客户端输入值,并且该请求的处理已被中止强>
从谷歌上搜索,它说,只是在Page指令,在我做的顶部添加validateRequest,但我仍然得到这个错误。正如可以看到,下面是我的代码在视图中:
<%@ Page validateRequest="false" Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>
解决方案
使用装饰[ValidateInput(false)]
。
您会再想要写一个的HTMLEncode方法使之安全。
让如果你要我发表一个我用我知道了。
加予使用编码
public static class StringHelpers
{
public static string HtmlEncode(this string value)
{
if (!string.IsNullOrEmpty(value))
{
value = value.Replace("<", "<");
value = value.Replace(">", ">");
value = value.Replace("'", "'");
value = value.Replace(@"""", """);
}
return value;
}
public static string HtmlDecode(this string value)
{
if (!string.IsNullOrEmpty(value))
{
value = value.Replace("<", "<");
value = value.Replace(">", ">");
value = value.Replace("'", "'");
value = value.Replace(""", @"""");
}
return value;
}
}
其他提示
尝试这种解决方案。简单地添加到TinyMCE的控制
tinyMCE.init({
...
encoding : "xml"
});
http://wiki.moxiecode.com/index.php/TinyMCE :配置/编码
http://blog.tentaclesoftware.com/archive/2010 /07/22/96.aspx
尝试在模型中使用[AllowHtml]
属性。
class MyModel{
[AllowHtml]
public string Content{get;set;}
}
烦人在TinyMCE的第4版,他们似乎已删除了编码:XML选项
我最终使用一个JavaScript HTML编码函数从此答案和上我的提交按钮我编码textarea的内容表单提交之前,通过使用TinyMCE的的getContent和setContent方法
我有同样的问题。我不想禁用ASP.NET MVC验证功能,所以我一直在寻找,直到我达到了这个解决方案:
目前TinyMCE的插件代码对内容进行编码(我使用的是旧版本)
tinyMCE.init({
...
encoding: "xml"
});
在这之后,我没有得到任何更多的应用验证错误。然后,我想到了另一个问题,当我编辑我的表单代码将拿出html标签
<strong>My input value</strong>
,而不是这
我输入值强>
所以,我不得不在控制器让我的价值观时,这样对HTML的那场解码:
...
entity.field = HttpUtility.HtmlDecode(entity.field);
不隶属于 StackOverflow