我修改我的WCF API,包括应该只暴露于内部IP地址的新服务。在我的API服务的是SOAP,POX和JSON可用。我正在寻找的是一个行为或事情,让我实现一个简单的IP地址过滤器,以处理来自内部IP的请求,并否认一切。我想它的配置工作,因为API中的所有其他服务应保持可用到互联网。我做了一些谷歌搜索,但无法找到这样的内置到WCF什么。我缺少的东西吗?

有帮助吗?

解决方案

好吧,我想通了,它的那种光滑的,在我看来。 我实现的IP过滤系统作为一种服务行为,那么在web.config中把它添加到我的服务。这是我的新web配置行为部分:

<serviceBehaviors>
    <behavior name="ServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
    </behavior>
    <behavior name="RestrictedServiceBehaviour">
      <serviceMetadata httpGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <IPFilter filter="172.*.*.* 127.0.0.1" />          
    </behavior>
  </serviceBehaviors>

ipfilter的类实现IDispatchMessageInspector到尽快赶上请求,检查所述客户端IP和引发异常,如果它不匹配过滤器。如果任何人的兴趣,我可以张贴我的代码。

其他提示

如果您的服务托管在IIS,那么你可以用IIS做到这一点,在每个网站的基础上(也许每个应用程序,但我不知道)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top