0

我的 ASP.NET 页面包含“ValidateRequest = true”。但是,页面中有一个文本框,我不希望 ASP.NET 对其进行验证。有没有办法让那个控件变成假的?如果没有,是否有办法忽略“潜在威胁”错误,假设它来自该特定控件?

谢谢

4

2 回答 2

0

我知道的唯一方法是调用 HttpRequest 类的 ValidateString。不幸的是,它是私有的,所以你必须通过反射来做到这一点。

我没有对此进行测试 - 它与我使用的代码不完全相同。它改编自我几年前写的代码,所以也许微软有一些新的东西可以让这更容易。

MethodInfo _validateMethodInfo = typeof(HttpRequest).GetMethod("ValidateString", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod);
foreach (string key in Request.Form.AllKeys) {
  if (key = "< skipped field name >") {
    continue;
  }
  object[] parameters = { Request.Form[key], key, "Request.Form" };
  _validateMethodInfo.Invoke(Request, parameters);
}
于 2010-01-16T19:52:48.443 回答
0

看看我的问题。显然 .NET 4.5 现在支持从页面请求验证中排除控件。

http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx

于 2012-11-02T00:15:53.507 回答