20

ASP.NET MVC 2の要求の検証は変更されましたか?より正確には、検証されていませんか?

私は次のことをしました:

Web.configs(AppディレクトリおよびViewsディレクトリ内)

<pages
    validateRequest="false"

コントローラ/アクション属性

[ValidateInput(false)]

@PageViewDirectiveで

ValidateRequest="false"

ページは引き続き検証され、HTMLコンテンツが投稿されると例外がスローされます。

アップデート

新しいASP.NETMVC2アプリケーションを作成し、ホームコントローラーのインデックスをこれに変更しました

    [ValidateInput(false)]
    public ActionResult Index(string InputText)
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";

        return View();
    }

と私のビューページ

<% using(Html.BeginForm()){ %>
    <%= Html.TextBox("InputText") %>
    <input type="submit" />
<% } %>

それでも同じ問題で、例外がスローされます。

4

2 に答える 2

31

次回はエラーをもっと注意深く読む必要があります。

ページがアプリケーションリクエストの検証設定を上書きできるようにするには、構成セクションでrequestValidationMode="2.0"を設定します。この値を設定した後、validateRequest = "false"を設定して、リクエストの検証を無効にできます。

これをアプリケーションのweb.configに入れます

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

そしてそれはうまくいった。

アップデート:

ASP.NET 4を実行していたので、:P

于 2009-10-30T11:07:02.277 に答える
2

ここにXSSに関する義務的な警告を挿入します。

ValidateInputAttributeすべての検証はASP.NETMVCのこのコントローラーレベルで行われるため、コントローラー(またはアクション)をで装飾するだけで十分です。

これをアクションで試したところ、出力すると素敵で邪悪なalert()が返されるので、ここで何か他のことが起こっていると思い切って思います。

HandleErrorAttributeどこかにセットアップはありますか?

于 2009-10-30T09:03:34.430 に答える