从页面中删除请求验证

时间:2012-11-06 20:17:31

标签: c# asp.net

我有一个CMS控制面板的页面,用户可以使用javascipt代码填充某些文本框以保存在数据库中。服务器阻止了回调,但有以下异常:

  

异常消息:从客户端检测到潜在危险的Request.Form值(ctl00 $ ContentPlaceHolder1 $ txtMenuAdsenseCode =“

我不确定为什么当我没有完全回发时服务器抱怨文本框值,但是有什么方法可以关闭它吗?我在页面中添加ValidateRequest="false",并将其放在web.config

  <location path="~/Admin/Settings.aspx">
      <system.web>
        <httpRuntime requestValidationMode="2.0" />
      </system.web>
    </location>

但它仍然抛出异常。

1 个答案:

答案 0 :(得分:1)

尝试使用Javascript将文本框代码的内容序列化到Base64,然后在代码隐藏中从Base64进行解码。

我通常使用这样的扩展方法:

public static string DecodeFrom64(this string encodedData)
{
    var data = Convert.FromBase64String(encodedData);
    string result = System.Text.ASCIIEncoding.ASCII.GetString(data);
    return result;
}