我用的是VB.NET2008, 从网上下载了FreeTextBox控件.  Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
  
        Dim ntitle As String = TextBox1.Text
        ntitle = Replace(ntitle, "'", "''")
        Dim nmessage As String = FreeTextBox1.HtmlEncodedText
        Dim dbConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("testdb.mdb") & ";Persist Security Info=False"
        Dim conn As OleDbConnection = New OleDbConnection(dbConnectionString)
        conn.Open()        Dim sql As String = ""
        sql = "insert into testdb(title,message) "
        sql += " values('" & ntitle & "','" & nmessage & "')"        Dim cmd As New OleDbCommand(sql, conn)        cmd.ExecuteNonQuery()
        cmd.Dispose()
        conn.Close()
        conn.Dispose()        MsgBox("OK,插入成功!")    End Sub以上是保存代码,但是当我将描述中的内容进字体放大或改变颜色这样的设置后, 保存时提示出错如下:从客户端(FreeTextBox1="<P><FONT face=宋体 siz...")中检测到有潜在危险的 Request.Form 值。 
说明: 请求验证过程检测到有潜在危险的客户端输入值,对请求的处理已经中止。该值可能指示危及应用程序安全的尝试,如跨站点的脚本攻击。通过在 Page 指令或 配置节中设置 validateRequest=false 可以禁用请求验证。但是,在这种情况下,强烈建议应用程序显式检查所有输入。 异常详细信息: System.Web.HttpRequestValidationException: 从客户端(FreeTextBox1="<P><FONT face=宋体 siz...")中检测到有潜在危险的 Request.Form 值。源错误: 只有在调试模式下进行编译时,生成此未处理异常的源代码才会显示出来。若要启用此功能,请执行以下步骤之一,然后请求 URL: 1. 在产生错误的文件的顶部添加一条“Debug=true”指令。例如:   <%@ Page Language="C#" Debug="true" %>或:2. 将以下的节添加到应用程序的配置文件中:<configuration>
   <system.web>
       <compilation debug="true"/>
   </system.web>
</configuration>请注意,第二个步骤将使给定应用程序中的所有文件在调试模式下进行编译;第一个步骤仅使该特定文件在调试模式下进行编译。重要事项: 以调试模式运行应用程序一定会产生内存/性能系统开销。在部署到生产方案之前,应确保应用程序调试已禁用。  堆栈跟踪: 
[HttpRequestValidationException (0x80004005): 从客户端(FreeTextBox1="<P><FONT face=宋体 siz...")中检测到有潜在危险的 Request.Form 值。]
   System.Web.HttpRequest.ValidateString(String s, String valueName, String collectionName) +8718538
   System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, String collectionName) +111
   System.Web.HttpRequest.get_Form() +129
   System.Web.HttpRequest.get_HasForm() +8718647
   System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97
   System.Web.UI.Page.DeterminePostBackMode() +63
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +6785
   System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +242
   System.Web.UI.Page.ProcessRequest() +80
   System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21
   System.Web.UI.Page.ProcessRequest(HttpContext context) +49
   ASP.newadd_aspx.ProcessRequest(HttpContext context) +37
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75
 --------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.3053; ASP.NET 版本:2.0.50727.3053 请高手帮忙指教,要如何改正呢? 万分谢谢!

解决方案 »

  1.   

    <%@ Page Language="C#" MasterPageFile="~/SupplierCenter/SupplierMaster.Master" AutoEventWireup="true" CodeBehind="AddProduct.aspx.cs" ValidateRequest="false" Inherits="Web.SupplierCenter.AddProduct" Title="" %>
    加上:ValidateRequest="false" 
      

  2.   

    再aspx页顶部加上
    ValidateRequest="false" 
      

  3.   


    原因:因为你提交的文本信息中包含有HTML的一些标签,所以被ASP。NET视为潜在的威胁,
    解决方法:
    1、在你的页面的Page指令中加上这个属性:validateRequest=false 
    2、在你的web.config中加上这个节点:<page validateRequest=false />
    推荐方法1。
      

  4.   


    <%@ Page Language="C#" MasterPageFile="~/SupplierCenter/SupplierMaster.Master" AutoEventWireup="true" CodeBehind="AddProduct.aspx.cs" ValidateRequest="false" Inherits="Web.SupplierCenter.AddProduct" Title="" %> 
    换成
    <%@ Page Language="C#" MasterPageFile="~/SupplierCenter/SupplierMaster.Master" AutoEventWireup="true" CodeBehind="AddProduct.aspx.cs" ValidateRequest="false" Inherits="Web.SupplierCenter.AddProduct" Title="" ValidateRequest="false" %> 
      

  5.   

    奇怪了,你们的代码是加在哪里呀? 我用的是VB.NET 2008 哦,烦请再明示一下,谢谢.
      

  6.   

    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="newadd.aspx.vb" Inherits="newadd" ValidateRequest="false"%>对吧. 我试试
      

  7.   

    谢谢楼上的朋友,确实是加上那个就没有错了,不过我保存后,读出来的信息是这样的乱乱的
    &lt;P&gt;&lt;FONT face=宋体&gt;dffdfdfdf&lt;/FONT&gt;&lt;/P&gt;
    &lt;P&gt;&lt;FONT face=宋体 color=#ff1493&gt;q1212ererer43545454656576767&lt;/FONT&gt;&lt;/P&gt;表再帮忙一下,如何读出那个已经通过FreeTextBox控件设置好的字体大小及颜色呢? 谢谢啊!
      

  8.   


    你用什么读的?用FreeTextBox这种HTML编辑控件编辑的。就用它来读取啊。。不要搞什么textbox或label等等。
    如果不想用这种控件。也可以直接在前台这样写:<%= txt%>
    然后在后台定义一个公共变量txt,给它赋值就可以了。
      

  9.   

    那就如13楼所说啊。用freetextbox控件显示,或者用后台公共变量的方式来显示。 都可以
      

  10.   

    ValidateRequest="false"
    page指令加这个参数