Home Articles

如何限制WCF服务对某些地址的可发现性?

Asked
Viewed 349 times
1

我有一个桌面应用程序连接到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 Answer

  • 0

    WS-Discovery的最初发现方面是基于广播原则 - 它不接收和回复请求 . 在某种程度上,元数据的目的是帮助客户区分哪些服务符合条件 . 除此之外,您应该应用适当的安全性来对服务级别的传入请求进行身份验证和授权 . 最后,如果部门位于不同的子网上,您可以过滤子网之间的UDP广播,假设您具有适当的网络基础结构 .

Related