我正在编写一个 IHttpHandler 实现,它将接收通过常规 HTTP POST 从另一个网站发送的 XML 数据。
这是实现的原型:
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
谢谢你们! :)
据我所知,您只需要使用实体对 XML 进行编码即可。
我的意思是 >,等等。
编辑:我发现这是重复的:如何为 HttpHandler 禁用请求验证?
尝试这个!! :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)