2011-11-09 85 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終止和驗證是在「硬件」中以傳統軟件方法的一小部分成本完成的。