Проверка XSD на входящих сообщениях SOAP - PullRequest
0 голосов
/ 09 ноября 2011

Я надеялся, что это будет просто, но, очевидно, каждое решение в сети - это не то, чего я хочу. Под этим я подразумеваю наличие метода проверки, который вызывают веб-службы, или наличие атрибута функции, который проверяет входящее сообщение SOAP (и с помощью этой проверки с помощью схемы ... но мне, возможно, придется пойти по этому пути).

У нас есть несколько веб-сервисов, которые общедоступны. Каждый сервис принимает элемент XML.

У нас также есть огромное количество схем XSD, которые мы хотим использовать для проверки входящего XML-сообщения, которое также является частью опубликованных файлов WSDL, которые производители используют для построения своих систем.

Я надеюсь включить проверку XSD в сам метод веб-службы по сравнению с опубликованным файлом WSDL.

Существуют ли какие-либо атрибуты веб-метода или что-либо, что я могу сделать, чтобы указать веб-службе использовать определенный XSD (или более 10 XSD) для проверки перед выполнением любого кода?

Если есть лучший способ сделать это, я выслушаю.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Я сделал это с помощью веб-сервисов ASMX, используя класс SoapExtension .

Я рекомендую начать с примера, заставить его работать, а затем медленно менять его, пока он не выполнит проверку. На каждом шаге убедитесь, что он все еще работает. Я нашел это очень требовательным классом.

0 голосов
/ 09 ноября 2011

Я не думаю, что есть что-то столь же простое, как атрибут. Я бы начал с этой ссылки на MSDN , которая показывает, как это можно сделать в мире WCF; по вашему вопросу трудно сказать, попадет ли это решение в ваш набор "не то, что я хочу"; Хотя я бы предположил, что, будучи представленным в качестве такового на MSDN, это также должно быть хорошим примером того, зачем использовать инспекторы сообщений.

Что касается лучшего способа, это зависит от ваших конкретных ограничений. Для сценариев среднего / большого объема я бы рекомендовал использовать Datapower или Forum Sentry XML Gateway; эти устройства также идеально подошли бы к вашему общему сценарию с точки зрения безопасности; Прекращение и проверка SSL выполняется на «аппаратном уровне» за часть стоимости традиционного программного подхода.

...