我的ASP.NET页面包含“ValidateRequest = true”。但是,页面中有一个文本框,我不希望ASP.NET验证它。有没有办法让它成为一个控件的错误?如果没有,是否有办法忽略“潜在威胁”错误,假设它来自该特定控件?
由于
答案 0 :(得分: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);
}
答案 1 :(得分:0)
看看my question。显然,.NET 4.5现在支持从页面请求验证中排除控件。
http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx