我希望这很简单,但显然网络上的每个解决方案都不是我想要的。我的意思是拥有一个Web服务调用的验证方法,或者具有验证传入SOAP消息的函数属性(并通过模式验证...但我可能必须这样做)。
我们有一大堆面向公众的网络服务。每个服务都接受XML元素。
我们还有大量的XSD架构,我们希望用它来验证传入的XML消息,这些消息也是供应商用来构建系统的已发布WSDL文件的一部分。
我希望将XSD验证包含在实际的Web服务方法本身与已发布的WSDL文件中。
在执行任何代码之前,是否有任何Web方法属性或任何我可以做的事情来告诉Web服务使用特定的XSD(或10+ XSD)进行验证?
如果有更好的方法,我会听。
感谢。
答案 0 :(得分:2)
我使用SoapExtension class在ASMX网络服务中完成了这项工作。
我建议您从示例开始,使其工作,然后慢慢更改它,直到它执行验证。在每一步,确保它仍然有效。我发现这是一个非常挑剔的课程。
答案 1 :(得分:0)
我认为没有什么比属性更简单。我将从this link on MSDN开始,它展示了如何在WCF世界中完成它;很难从你的问题中说出这个解决方案是否落入你的“不是我想要的”设置中;我认为虽然在MSDN上具有这样的特征,但它也必须是使用消息检查器的一个很好的例子。
至于更好的方法,它取决于您的具体约束。对于中/高音量场景,我建议使用Datapower或Forum Sentry XML Gateway;从安全角度来看,这些设备也非常适合面向公众的场景; SSL终止和验证在“硬件”中完成,而成本仅为传统软件方法的一小部分。