0

HTMLを送信する必要があります。エラーが発生します(このマシンは翻訳します):

クライアントから受信した Request.Form の潜在的に危険な値を検出しました (Description = "eqqdaqd asda

説明: 検証リクエストの手順で潜在的に危険なクライアント入力値が見つかり、クエリ処理が中断されました。この値は、「クロスサイト スクリプティング」による攻撃など、アプリケーションのセキュリティを侵害する試みを示している可能性があります。ページがアプリケーションのデフォルトのスキャン要求をオーバーライドできるようにするには、httpRuntime 構成属性を参照して、requestValidationMode requestValidationMode = "2.0" を設定します。例: 。この値を設定した後、Page ディレクティブまたは構成セクションで validateRequest = "false" を設定することにより、リクエストの検証を無効にすることができます。ただし、この場合、アプリケーションで明示的にすべてのエントリを確認するように求められます。詳細については、 http: //go.microsoft.com/fwlink/?LinkId=153133を参照してください。

 public ActionResult Create()
        {
            this.ValidateRequest = false;
            return View();
        }

        //
        // POST: /Admin/News/Create

        [HttpPost]
        public ActionResult Create(NewsView model)
        {
            this.ValidateRequest = false;
            try
            {
               //logic

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

このコントローラーはアリーナ管理者にあります。私はweb.configで設定しました

<system.web>
    <httpRuntime requestValidationMode="2.0" />
4

2 に答える 2

4

ValidateInput次の属性を使用して、コントローラーアクションを装飾できます。

[HttpPost]
[ValidateInput(false)]
public ActionResult Create(NewsView model)
{
    ...
}

この例では、POSTコントローラーアクション内でプロパティを設定していますが、アクションを呼び出す前に検証が実行されるため、遅すぎます。または、ビューモデルの特定のプロパティに対してのみ検証を無効にする場合は、次のAllowHtml属性で装飾できます。

[AllowHtml]
public string Description { get; set; }

ValidateInputこれで、コントローラーアクションを属性で装飾する必要がなくなりました。

于 2012-05-22T09:27:17.330 に答える
0

AllowHtmlAttributeを使用してみることができます。 または、使用する場合は、次のようにValidateRequest設定する必要があります。requestValidationMode = "2.0"

于 2012-05-22T09:22:18.770 に答える