Я использую WCF для общения с веб-службой Java. Эта веб-служба имеет метод под названием Аутентификация, который возвращает идентификатор сеанса. Каждый запрос этой веб-службы должен содержать этот идентификатор сеанса в заголовке SOAP. Если один сеанс тайм-аута, вызов любого метода приводит к возврату SoapException. Я бы хотел:
- Перехватить каждый вызов, сделанный в веб-службе,
- Проверьте ответное сообщение для данного исключения.
- Если найдено, снова вызовите Authenticate, чтобы получить новый идентификатор сеанса, и снова отправьте исходное сообщение с обновленным идентификатором сеанса
У меня Googled это безрезультатно. Самое близкое, что я мог найти, сказал мне, что я мог бы выполнить это на канальном уровне, но вообще не приводил код примера.
Обратите внимание, что я хочу сделать это в прокси-классе, а не в коде, вызывающем класс прокси. Таким образом, вызывающим абонентам класса proxy не нужно беспокоиться о автоматической повторной аутентификации. Я наследую от автоматически сгенерированного прокси и программирует WCF программно.