我试图通过我的网络项目使用自由文本框控件发送电子邮件。它是一个文本编辑器。但我有这个错误。
从客户端检测到一个潜在危险的 Request.Form 值(FreeTextBox1="你好,亲爱的")。 我设置了 ValidateRequest=false 并设置了 isbodyHtml=true。但它不起作用。
我应该怎么办?
我以前有过这个。
您还需要添加到您的 web.config 文件中。
如果您将页面置于调试模式并阅读带有错误消息的文本,它会告诉您要添加什么以及在哪里添加它。我不记得 100% 为什么会发生错误,我认为这与回发页面内容有关,并且浏览器认为其中存在有害代码。
另请参阅: 从客户端检测到具有潜在危险的 Request.Form 值
和
http://www.codeproject.com/Tips/297679/A-potentially-dangerous-Request-Form-value-was-det
以获得更完整的解释和解决方案。
如果您正在运行 .NET 4.0,请将其添加到您的 web.config(在 system.web 下)
<httpRuntime requestValidationMode="2.0" />
FreeTexBox 控件和“从客户端检测到潜在危险的 Request.Form 值”
你可以尝试另一个决定
if(!this.Page.ClientScript.IsOnSubmitStatementRegistered("Replace"))
{
string script = @"if (Page_IsValid){FTB_API['" + txtBox.ClientID + @"'].initialized=false; FTB_API['" + txtBox.ClientID + @"'].htmlEditor.value=FTB_FreeTextBox.prototype.HtmlEncode( FTB_API['" + txtBox.ClientID + @"'].htmlEditor.value);}";
this.Page.ClientScript.RegisterOnSubmitStatement(this.Page.GetType(), "Replace", script);
}
当您将字符串从服务器发送到客户端应用程序时,不要忘记替换符号
if(!String.IsNullOrEmpty(yourstring)) txtBox.Text= yourstring.Replace(">", ">").Replace("<", "<").Replace("&", "&").Replace(""", ('"').ToString()).Replace("’", "'");