0

ASP.NET MVCアプリケーションの1つでは、FCKEditorを使用して、ユーザーがリッチテキストを入力できるようにしています。コントローラアクションの検証をオフにするために、属性を設定します

[ValidateInput(false)]

ページにビジネス検証エラーがない限り、ユーザーはリッチテキストを保存および変更できます。

ビジネス検証のいずれかが失敗し、ModelState.IsValidがfalseに設定されている場合、ページのレンダリング時に次の例外が発生します。誰かがこの問題を解決する方法を教えてもらえますか?

潜在的に危険なRequest.Form値がクライアントから検出されました(Programme_Overview = "

これがコードです

    [ValidateInput(false)]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Schedule(FormCollection formValues)
    {
      // some code
      if (ModelState.IsValid)
        {
            //do something here...
        }
        else
        {               
            return View(programDetails);
        }


     }

    //// View code that render the fckeditor text area
    <%= Html.TextArea("Programme_Overview", Model.Programme.Overview, new { row = 7 })%>
4

4 に答える 4

1

これが発生したばかりで、修正は fck 構成ファイル fckconfig.js を更新することでした

FCKConfig.HtmlEncodeOutput = false;

する必要があります

FCKConfig.HtmlEncodeOutput = true ;
于 2011-02-25T15:00:48.577 に答える
0

FCKEditorからのHTML出力が何らかの形で送信される可能性があります。

検証をオフに切り替えることができます。

public MyController
{
    [ValidateInput (false)]
    public ActionResult MyAction ()
    {
    }
}
于 2009-07-14T07:36:21.107 に答える
0

アクションに以下を追加するだけです。

[ValidateInput(false)]
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SomeAction() {}
于 2009-07-14T07:37:08.577 に答える
0

このプロジェクトは、1.0 より前の RTM プロジェクトから移行されたものだと思います。

元の ASP.NET には、つまずいているページ レベルの「危険な入力」検証があります。Views フォルダーの Web.config ファイルを変更して、システム全体で無効にしましたが、その変更をいつ行ったか正確には覚えていません。プロジェクトがこの変更より前の日付である場合、Views フォルダーの Web.config ファイルにその設定はありません。

したがって、新しい MVC プロジェクトを作成し、Web.config ファイルを見て、コピーする必要のある設定を確認できます。必要に応じて、ページごとにこれを無効にすることもできます。

http://www.asp.net/learn/whitepapers/request-validation/

于 2009-07-15T12:59:09.713 に答える