別の Web サイトから通常の HTTP POST を介して送信された XML データを受信する IHttpHandler 実装を作成しています。実装のプロトタイプは次のとおりです。
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string s = context.Request.Form["input"]; // <== this throws HttpRequestValidationException
XmlDocument doc = new XmlDocument();
doc.LoadXml(s);
// ...
}
public bool IsReusable
{
get { return false; }
}
}
この単純なページで実装をテストしています。
<body>
<form method="post" action="MPSConnector.Results.dsvc">
<textarea name="input"></textarea>
<input type="submit" value="Go!" />
</form>
</body>
問題は、投稿されたデータから「入力」値を読み取ろうとすると、xml 文字列が含まれている場合、取得するのは HttpRequestValidationException だけです。使ってみた
<pages validateRequest="false">
web.config で、validate="false" 属性を httpHandles セクションのハンドラー宣言に入れますが、結果はありません。
ハンドラーで投稿された xml を読み取るにはどうすればよいですか? (このタスクには IHttpHandler を使用する必要があることに注意してください)。
編集: フレームワークのバージョン: 4.0、IIS 7.x
皆さん、ありがとうございました!:)