2016-10-29 7 views
0

の.NET Framework 4.5.2、Visual Studioの2015年、IIS Expressの私は自分のアプリケーションにhttp://localhost:49974/xxx/xml/<a><b></b></a>のようなリクエストを送りたい、IIS Expressの

<system.web> 
    <httpRuntime requestValidationMode="2.0" targetFramework="4.5.2" /> 
</system.web> 

そして、コメントを追加しました[ValidateInput(false)] cotrtollerのアクションへ:まだしかし

[ValidateInput(false)] 
public ActionResult Xml() 
{ 
    return View("../Home/Index"); 
} 

私はrequestValidationMode="2.0"を設定しているMSDNからの指示に従いA potentially dangerous Request.Path value was detected from the client (="/xxx/xml/<a><b></b></a>").

:これは、サーバーのエラーとメッセージになり上記のリクエストでまったく同じエラーが発生します。

答えて

1

データを受信するモデルを使用するようにacionmethodを変換できる場合は、モデルプロパティで[AllowHtml]属性を指定できます。

これにより、この特定のプロパティに対してのみ検証がスキップされることも保証されます。

ActionMethod:

public ActionResult Xml(XmlModel vm) 
{ 
    return View("../Home/Index"); 
} 

モデル

public class XmlModel 
{ 
    [AllowHtml] 
    public string xml { get; set; } 
} 

あなたのURLがhttp://localhost:49974/xxx/xml/?xml= {あなたのXML文字列}

+0

は、[OK]を私が見るようになりますが、の検証を設定するには、どのような方法がありますURI?私はURIでXMLを送信することは悪い考えですが、それは私が考えることができる最も簡単なことです、私はそれを動作させたいと思います。 – inwenis

+1

私の経験では、モデルを使用してこれを許可することが最も効果的で、メソッド/アプリケーション全体でrequestvalidationを無効にするより安全な方法であることがわかりました。 urlを通じてxmldataを送信することはまだ可能です。例については、私の編集した答えを見てください – middelpat

関連する問題