【问题标题】:XSD validation on incoming SOAP messages传入 SOAP 消息的 XSD 验证
【发布时间】:2011-11-09 00:34:21
【问题描述】:

我希望这会很简单,但显然网络上的每个解决方案都不是我想要的。我的意思是有一个 Web 服务调用的验证方法,或者有一个函数属性来验证传入的 SOAP 消息(并通过模式验证......但我可能不得不这样做)。

我们有很多面向公众的网络服务。每个服务都接受一个 XML 元素。

我们还有大量 XSD 模式,我们希望使用它们来验证传入的 XML 消息,它们也是供应商用来构建系统的已发布 WSDL 文件的一部分。

我希望将 XSD 验证包含到实际的 Web 服务方法本身而不是已发布的 WSDL 文件中。

是否有任何 Web 方法属性,或者我可以做些什么来告诉 Web 服务在执行任何代码之前使用特定的 XSD(或 10 多个 XSD)进行验证?

如果有更好的方法,我会听。

谢谢。

【问题讨论】:

  • 这是一个 ASMX Web 服务还是 WCF?
  • 这是一个 ASMX 服务。

标签: c# .net web-services xsd asmx


【解决方案1】:

我使用SoapExtension class 使用 ASMX Web 服务完成了这项工作。

我建议您从示例开始,使其工作,然后慢慢更改它,直到它执行验证。在每一步,确保它仍然有效。我发现这是一门非常挑剔的课。

【讨论】:

    【解决方案2】:

    我认为没有比属性更简单的东西了。我将从this link on MSDN 开始,它展示了如何在 WCF 世界中完成它;从你的问题很难说这个解决方案是否属于你的“不是我想要的”集合;我会假设虽然在 MSDN 上有这样的特色,但它也必须是为什么使用消息检查器的一个很好的例子。

    至于更好的方法,这取决于您的具体限制。对于中/高容量场景,我建议使用 Datapower 或 Forum Sentry XML 网关;从安全角度来看,这些设备也非常适合您面向公众的场景; SSL 终止和验证在“硬件”中完成,成本仅为传统软件方法的一小部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多