Отверните элементы XMLDSIG из входящего XML-поста в WCF RESTFLAY SERVICE
-
08-10-2019 - |
Вопрос
Люди, я создаю спокойную службу, которая защищена путем предоставления сигнатуры XMLDSIG XML в нижней части документа XML. Когда я отправляю этот документ на сервер, служба WCF выполняет метод XML-сериализации на полезной нагрузке HTTP, чтобы дать мне класс C #. К сожалению, для этой десериализации произойдет должным образом, определение класса C # необходимо иметь все свойства, необходимые для определения подписи XML, даже если мне нужна только для безопасности.
Итак, что я хотел бы сделать, это это:
- Создайте поведение службы WCF, которое предварительно вызовов исследует сигнатуру XML, проверяет ее, а затем прокладывает его с XML перед девериализацией для регулярного вызова метода.
Это возможно? Если так, то где я могу начать искать, как это сделать? Я чувствую, что я близко, я просто не нашел правильную точку впрыска WCF.
PS Все это .NET 4.0, Visual Studio 2010, IIS 7+.
Решение
Догадаться. Я создал класс XMLSignatureVerificationConfiguration, что позволяет мне удалять элемент XML, вызываемый непосредственно в мою конфигурацию поведения WCF. Этот раздел «Конфигурация» затем точкает WCF к типу данных моего поведения расширения, подписьюверификацияБехавиора. Такое поведение тогда указывает на инспектор пользовательских сообщений, который я написал, подписьВерверификацияСинспектор. Этот инспектор POPS открывает сообщение, удаляет узел подписи из полезной нагрузки, проверяет подпись, а затем отправляет новое (удаленное подпись) сообщение обратно вниз по трубопроводу, где определения обслуживания остаются блаженно невежественными в присутствии подписей.