【问题标题】:How to receive XML in ASP.NET Web Service?如何在 ASP.NET Web 服务中接收 XML?
【发布时间】:2011-08-06 14:58:25
【问题描述】:

我有一个准 RESTful ASP.NET Web 服务,我希望能够将 XML 发布到该服务。我的方法看起来像这样:

[WebMethod(false, System.EnterpriseServices.TransactionOption.NotSupported)]
public void save(string saveXml)
{
    XDocument saveXml = XDocument.Parse(saveXml);
    ....

当我尝试发布到该网络服务时,我得到了异常:

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form
value was detected from the client...

根据一些搜索,我的理解是 所有 对 ASP.NET 页面的请求都会寻找像“

【问题讨论】:

  • 您也可以对 XML 字符串进行 base64 编码。编码/解码 base64 很简单,避免了这种配置问题。
  • 什么样的客户将发布到此服务?当您收到此异常时,您是如何发布的?
  • 另外,这可能暗示是时候停止使用“传统技术”的 ASP.NET Web 服务了。
  • @John Saunders:客户端是一个 Flex 应用程序。我意识到还有其他几个更好的选择,但由于时间限制,我必须使用我们应用程序中已经设置的内容。
  • Web 服务是否位于单独的 IIS 应用程序中?这个例外是为了保护您的网站。如果该服务位于与该站点不同的应用程序中,则您不会收到错误消息。

标签: c# asp.net xml web-services security


【解决方案1】:

新的 4.0 RequestValidation 模型有点挑剔,但只要您的客户端将 HTTP 请求 Content-type 标头发送为 text/xml 而不是 application/x-www-form-urlencoded 它应该通过(或绕过)ASP.NET RequestValidation。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    相关资源
    最近更新 更多