0

ASP.NETページに「ValidateRequest=true」が含まれています。ただし、ASP.NETで検証したくないテキストボックスがページに1つあります。その1つのコントロールに対してそれを偽にする方法はありますか?存在しない場合、「潜在的な脅威」エラーがその特定のコントロールから発生していると仮定して、それを無視する方法はありますか?

ありがとう

4

2 に答える 2

0

私の質問を見てください。.NET 4.5 では、ページ リクエストの検証からコントロールを除外する機能がサポートされているようです。

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

于 2012-11-02T00:15:53.507 に答える
0

私が知っている唯一の方法は、HttpRequest クラスの ValidateString を呼び出すことです。残念ながら、それはプライベートなので、反射して行う必要があります。

私はこれをテストしていません - 私が使用しているコードとまったく同じではありません。これは私が数年前に書いたコードから改作されているので、Microsoft がこれを簡単にする新しいものを持っているのかもしれません。

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 に答える