Запись незашифрованных SOAP-сообщений в WSE - PullRequest
0 голосов
/ 13 января 2010

Я пытаюсь регистрировать необработанные SOAP-сообщения, отправляемые и получаемые. У меня SoapExtension, все в целом работает нормально, но есть проблема. Мы используем шифрование WS-DeathStars и подписывание сообщений, поэтому в журнал заносится зашифрованное сообщение SOAP. Мне нужно найти способ вставить мой SoapExtension сразу после расширения дешифрования сообщения и прямо перед процедурой шифрования сообщения. Как мне это сделать?

1 Ответ

0 голосов
/ 15 января 2010

ОК, у меня все получилось. Это можно решить путем реализации пользовательского SoapFilter, который должен быть первым в цепочке фильтров:

public class TraceAssertion : PolicyAssertion
{
    public override SoapFilter CreateClientInputFilter(FilterCreationContext context)
    {
        return new SoapTraceFilter();
    }

    public override SoapFilter CreateClientOutputFilter(FilterCreationContext context)
    {
        return new SoapTraceFilter();
    }

    public override SoapFilter CreateServiceInputFilter(FilterCreationContext context)
    {
        return null;
    }

    public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context)
    {
        return null;
    }
}

public class SoapTraceFilter : SoapFilter
{
    public override SoapFilterResult ProcessMessage(SoapEnvelope envelope)
    {
        envelope.Save("c:\\log\\" + DateTime.Now.Ticks + ".soap.xml");
        return SoapFilterResult.Continue;
    }
}
...