2011-11-09 50 views
0

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

我们有一群面向公众的Web服务。每个服务都接受一个XML元素。

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

我期待着希望将XSD验证包含到实际的Web服务方法本身与发布的WSDL文件中。

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

如果有更好的方法来做到这一点,我会听。

谢谢。

+1

这是一个ASMX网络服务或WCF吗? –

+0

这是一个ASMX服务。 –

回答

2

我已经使用ASMX网络服务完成了这项工作,使用了SoapExtension class

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

0

我不认为有任何东西就像属性一样简单。我会从this link on MSDN开始,它展示了如何在WCF世界中完成它;从你的问题中很难说这个解决方案是否会落入你的“不是我想要的”范围内;我假设尽管在MSDN上的特征如此,但它也必须是为什么使用消息检查器的一个很好的例子。

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