Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 验证每个控件的请求_C#_Asp.net_Error Handling_Validate Request - Fatal编程技术网

C# 验证每个控件的请求

C# 验证每个控件的请求,c#,asp.net,error-handling,validate-request,C#,Asp.net,Error Handling,Validate Request,我的ASP.NET页面包含“ValidateRequest=true”。但是,页面中有一个文本框,我不希望ASP.NET对其进行验证。有没有办法让这一个控件为假?如果没有,有没有办法忽略“潜在威胁”错误,假设它来自特定的控制 谢谢我所知道的唯一方法就是调用HttpRequest类的ValidateString。不幸的是,它是私有的,因此您必须通过反射来完成 我没有测试过这个-它与我使用的代码不完全相同。它是根据我几年前写的代码改编的,所以也许微软有一些新的东西使它更容易实现 MethodInfo

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


谢谢

我所知道的唯一方法就是调用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);
}
MethodInfo\u validateMethodInfo=typeof(HttpRequest).GetMethod(“ValidateString”,BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.InvokeMethod);
foreach(Request.Form.AllKeys中的字符串键){
如果(key=“”){
继续;
}
object[]参数={Request.Form[key],key,“Request.Form”};
_validateMethodInfo.Invoke(请求、参数);
}
看一看。显然.NET4.5现在支持从页面请求验证中排除控件


为什么您希望允许任何输入控件进行秘密输入?这部分与我的另一篇帖子有关:由于密码正在被哈希,我不必担心特定的输入,因为它从未显示或存储在数据库中。但是,我希望ASP.NET涵盖其他输入。