使用web.config ipsecurity限制对单个方法的访问

时间:2015-07-30 15:16:30

标签: c# asp.net wcf web-config

我无法找到有关此信息的任何信息。

在web.config中,是否可以限制对.svc / controller中单个方法/端点的访问?或者必须限制对整个控制器的访问?

例如,这可行,但限制对整个SVC的访问:

<location path="ManagementService.svc">
    <system.webServer>
        <security>
            <ipSecurity configSource="config\ipFilter.config" />
        </security>
    </system.webServer>
</location>

如果我的SVC中有两个方法,并且我想要一个不被过滤的方法,我可以写一些类似的东西:

<location path="ManagementService.svc/DeleteUser">
    <system.webServer>
        <security>
            <ipSecurity configSource="config\ipFilter.config" />
        </security>
    </system.webServer>
</location>

限制只访问单个方法,同时让其他方法可以访问?

如果答案是否定的则不可能,实现这一目标的最佳方法是什么?只是检查代码中的IP?

1 个答案:

答案 0 :(得分:0)

是的,但是要按端点过滤,您必须在行为级别使用IFFilter而不是system.webServer,这会影响所有端点。

从system.WebServer中删除安全标记并添加行为,如下所示:

   <serviceBehaviors>
    <behavior name="Filter1"> 
      <IPFilter filter="192.168.*.* 127.0.0.1" />           
    </behavior>
   </serviceBehaviors>

当然,您需要为要配置的每个端点创建不同的行为。

通过方法它也是可能的,但你需要在代码中实现。

希望它有所帮助。