对传入SOAP消息进行XSD验证

本文关键字:XSD 验证 消息 SOAP | 更新日期: 2023-09-27 18:13:48

我希望这将是简单的,但显然每个解决方案在网络上不是我想要的。我的意思是有一个web服务调用的验证方法,或者有一个函数属性来验证传入的SOAP消息(并通过该验证通过模式…但我可能不得不走这条路)。

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

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

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

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

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

谢谢。

对传入SOAP消息进行XSD验证

我使用SoapExtension类对ASMX web服务完成了此操作。

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

我不认为有什么像属性那么简单。我将从MSDN上的这个链接开始,它展示了如何在WCF世界中完成;从你的问题中很难说这个解决方案是否符合你的"这不是我想要的";我认为,虽然在MSDN上有这样的特色,但它也一定是一个很好的例子,说明为什么要使用消息检查器。

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