【问题标题】:Passing a string formulation of XML to a web service on IIS将 XML 的字符串公式传递给 IIS 上的 Web 服务
【发布时间】:2017-04-24 13:21:08
【问题描述】:

我在 VB.NET 中开发了一个 Web 服务,其 Web 方法接受一个字符串作为参数,该参数必须是 XML 文档的形式。

我可以打开浏览器并正常调用服务,它会显示我需要传递字符串的文本框。

只要我通过复制我的 XML 并将其粘贴到框中传递任何 XML 字符串,然后单击调用,我就会收到错误消息。即使我以最简单的 XML 形式(例如,只有一个节点)放置一个字符串,我也会得到这个。

这是错误:

System.Web.HttpRequestValidationException:从客户端检测到具有潜在危险的 Request.Form 值(Xmlin="

【问题讨论】:

  • 它实际上是对恶意输入的保护。您需要禁用输入验证

标签: xml vb.net iis


【解决方案1】:

在方法上方添加如下属性:

[ValidateInput(false)]

这应该允许它读取 XML 而不是抛出异常,因为它可能很危险。

警告:这将停用对此的所有验证,并可能使您的端点面临某些形式的攻击或漏洞。如果您对此有任何疑问,请参阅this 发布类似问题的帖子。

【讨论】:

  • 谢谢ProNinja,让我试试看。
  • 您好,尝试在 web 方法上方添加 但似乎在 vb.net 中无法识别。它是从哪个类派生的?我知道 webMethod 我正在使用 System.Web.Services
  • 我认为它在System.Web.Mvc
  • 感谢@ProNinjacat。您最初的建议使我做了正确的事情。 I 该选项在 MVC 中可用,因此创建了一个 MVC 站点并使用它。
  • @Moe 很高兴我能帮上忙(排序):P
猜你喜欢
  • 1970-01-01
  • 2011-08-07
  • 1970-01-01
  • 2014-07-09
  • 2018-04-12
  • 2012-08-09
  • 1970-01-01
  • 1970-01-01
  • 2013-02-15
相关资源
最近更新 更多