Я использую стандартный пример WCF MessageRouter для маршрутизации сообщений между клиентом Silverlight и любым количеством внутренних веб-служб.Это работает хорошо.
Теперь мне нужно решить проблему, заключающуюся в том, что некоторые из моих веб-сервисов требуют федерации SAML и используют WsFederationHttpBinding.
Предполагается, что я могу решить проблему получения токена SAML дляпользователь правильно, я хотел бы иметь возможность принять сообщение, поступающее в маршрутизатор через BasicHttpBinding, и каким-то образом вставить его вместе с токеном SAML в исходящий WsFederationHttpBinding для маршрутизации сообщения в его конечный пункт назначения.
Я предполагаю, что сериализованный объект в теле одинаков в обоих случаях (я знаю, что он зашифрован в случае WsFed, но я надеюсь, что открытый текст этого зашифрованного тела одинаков).
Мне хотелось бы создать способ создания клиента для конечной точки WsFederationHttpBinding и каким-то образом передать его считывателю в существующее тело сообщения из сообщения BasicHttpBinding, а не начинать с объекта.Помните, я нахожусь в маршрутизаторе, который не знает ни о какой службе назначения, кроме ее http-адреса.
Кто-нибудь знает, что если для достижения этой цели я могу использовать какую-либо точку расширения в WCF?
Напомним, что у меня появляется сообщение SOAP 1.1, и я хочу взять SOAPAction, XML Message Body (сериализованную форму входного объекта) и токен SAML и, надеюсь, убедить WCF объединить эти входные данные в соответствующее сообщение, совместимое с WsFederationBinding, дляслужба назначения с минимальной обработкой / проверкой сообщений на маршрутизаторе.