Я создаю собственный канал в WCF для реализации собственного протокола безопасности. Нет, не убегай! Это не так страшно!
Проверка протокола на сервисе относительно проста. Сложной частью является добавление информации о безопасности в запрос на основе учетных данных клиента.
То, что я хочу сделать, - это получить доступ к объекту ClientCredentials
(который присоединен к используемому ClientProxy
) из моей реализации канала. Обычно я получаю доступ к этому через свойство Behaviors
в экземпляре ServiceEndpoint
для конечной точки, которую я пытаюсь достичь:
var credentials = channel.Endpoint.Behaviors.Find<ClientCredentials>();
Однако я не могу найти способ доступа к конечной точке службы, с которой связан канал, из самого канала - почти нулевые метаданные доступны из класса ChannelBase
.
Есть ли способ получить конечную точку, с которой связан мой канал? Есть ли альтернативный способ доступа к учетным данным клиента на стороне клиента?