我的ASP.NET页面包含"ValidateRequest = true“。但是,页面中有一个文本框我不希望ASP.NET对其进行验证。有没有办法使该控件的值为false?如果没有,有没有一种方法可以忽略“潜在威胁”错误,假设它来自特定的控制?
谢谢
发布于 2010-01-17 03:52:48
据我所知,执行此操作的唯一方法是调用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);
}
发布于 2012-11-02 08:15:54
看看my question吧。显然,.NET 4.5现在支持将控件排除在页面请求验证之外。
http://msdn.microsoft.com/en-us/library/system.web.ui.control.validaterequestmode.aspx
https://stackoverflow.com/questions/2078616
复制相似问题