Я звоню в службу WCF, размещенную в IIS через HTTP, используя basicHttpBinding
. Чтобы пройти проверку на сервере, необходимо передать значение пользовательского заголовка, вычисленное из самого HTTP-запроса (заголовки и тело, если они есть).Получить тело запроса HTTP от basicHttpBinding прокси WCF
я могу получить большую часть информации от вызова с использованием сообщений клиента инспектора (System.ServiceModel.Dispatcher.IClientMessageInspector
) пользовательские конечные точками поведения на прокси (System.ServiceModel.Description.IEndpointBehavior
), а затем доступ к httpRequest
заголовку объекта сообщения.
Однако получение содержимого сообщения, которое сериализуется для передачи по кабелю, не представляется незамедлительным или явно доступным. Однако я могу получить само сообщение, которое хранится в XmlSerializer, что не делает его доступным в том же формате, что и его передача по кабелю.
Есть ли способ получить доступ к этому значению? Возможно, другой инспектор или поведение, которое может быть введено, чтобы оно было вызвано во время открытия или обращения к каналу?
Кажется, что происходит с помощью конечной точки или поведений маршрут вряд ли будет возможно. Возможно ли (в пределах разумного) иметь производный класс basicHttpBinding, в котором можно манипулировать HTTP-связью каким-то образом? – Hugo