我可以设置一个WCF服务的IP过滤器?
-
05-09-2019 - |
题
我修改我的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做到这一点,在每个网站的基础上(也许每个应用程序,但我不知道)。
不隶属于 StackOverflow