Я создаю некоторую функциональность маршрутизации между сервисами. Исходный сервис и сервис, который выполняет маршрутизацию, имеют одинаковую конфигурацию; оба используют netTcpBinding со следующей конфигурацией привязки:
NetTcpBinding
security mode = "Сообщение"
message clientCredentialType = "Имя пользователя"
В поведении службы используется поставщик членства в AspNet и сертификат клиента, который мы установили на компьютере.
Когда я отключаю защиту сообщений, она нормально пересылается, но при включении я получаю следующее исключение:
"Сообщение не может быть обработано. Это, скорее всего, из-за того, что действие 'http://foo/Whatever' является неправильным, или потому что сообщение содержит недопустимый или просроченный токен контекста безопасности или из-за несоответствия между привязками *. Маркер контекста безопасности был бы недействительным, если бы служба прервала канал из-за неактивности. Чтобы предотвратить прерывание бездействующими сеансами службы, преждевременно увеличьте время ожидания приема для привязки конечной точки службы. " (Акцент мой)
Я думаю, что сертификат работает с сообщением дважды (один раз при исходном вызове, а затем при ретрансляции), и именно это портит маркер безопасности сообщения.
Вопросы:
Мое мышление на цели?
Есть ли способ продолжить использовать безопасность сообщений для маршрутизации, не имея сложности службы токенов?