WCF Входящий и исходящий подписанный текст запроса
Роман Гаманец
Добрый день, Коллеги!
Около трех месяцев бьюсь со следующей проблемой:
Имеется веб сервис, размещенный на IIS.
К сервису предъявлены требования, что он должен быть подписан по ГОСТ 34.11 (это делается с помощью CryptoPro.Net).
Все это успешно уже работает.
Но есть необходимость сохранять запросы и ответы для хранения истории.
В связи с этим есть несколько вопросов:
1. Для хранения входящих логов я реализую интерфейс IClientMessageInspector, добавляю его
            CustomEndpointBehavior inspector = new CustomEndpointBehavior();
            s.Endpoint.Behaviors.Add(inspector);
Получаю в процедуре         public void AfterReceiveReply(ref System.ServiceModel.Channels.Message reply, object correlationState)
сам тест запроса, и успешно из reply получаю текст запроса.
Однако возникает сложность в передаче этого текста запроса в саму процедуру которая вызывается после десериализации:
       public string getCatalogItems(int idCatalog, int start, int end, bool getFullSpec, bool hideDeleted)
        {
            ODOPMReference.soapClient s = new ODOPMReference.soapClient();
            CustomEndpointBehavior inspector = new CustomEndpointBehavior();
            s.Endpoint.Behaviors.Add(inspector);
            var resultat = s.getCatalogItems(idCatalog, start, end, getFullSpec, hideDeleted);
            string responceXML = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("Response", "");
            return responceXML;
        }
Т.е. было бы хорошо после выполнения команды s.getCatalogItems(.....) получить текст запроса.
Сейчас я его получаю через передачу полного текста извлеченного на этапе AfterReceiveReply в заголовки сообщения.
Этот способ очень сильно мне не нравится.
И теперь сам вопрос:
Как можно передать текст запроса между процедурой обработки сообщения AfterReceiveReply и непосредственно рабочим кодом вызываемого метода?
Есть еще один вопрос, но если мы сможем решить этот вопрос, вполне возможно я смогу решить второй вопрос самостоятельно.
Роман Гаманец больше 2 лет назадСпасибо 0
1 чел.