Как ограничить обнаружение службы WCF определенными адресами? - PullRequest
1 голос
/ 27 января 2011

У меня есть настольное приложение, которое подключается к службе WCF и использует обнаружение WCF 4.0.Мой код для обнаружения службы выглядит следующим образом:

public static void MakeServiceHostDiscoverable(ServiceHost sh)
    {
        IServiceBehavior Beh = new ServiceDiscoveryBehavior();
        sh.Description.Behaviors.Add(Beh);
        ServiceEndpoint Endp = new UdpDiscoveryEndpoint();
        sh.AddServiceEndpoint(Endp);

    }

В последнее время приложение используется двумя разными отделами в одной компании.Каждый отдел имеет свой собственный сервер (ы), и клиенты в этом отделе должны обнаруживать только серверы этого отдела.В настоящее время клиенты могут видеть все серверы в сети компании.

Существует ли у службы возможность ограничить, с каких IP-адресов она может быть обнаружена?Или, что еще лучше, он может динамически утверждать / отклонять запросы на обнаружение по мере их поступления?

1 Ответ

0 голосов
/ 03 марта 2011

Первоначальный аспект обнаружения WS-Discovery работает по принципу широковещания - он не принимает и не отвечает на запросы.Частично цель метаданных состоит в том, чтобы помочь клиентам определить, на какие услуги они имеют право.Кроме того, вы должны применять соответствующие меры безопасности для проверки подлинности и авторизации входящих запросов на уровне обслуживания.Наконец, если отделы находятся в отдельных подсетях, вы можете фильтровать широковещательные рассылки UDP между подсетями, предполагая, что у вас есть соответствующая сетевая инфраструктура.

...