Web.config位置中的IIS动态IP限制

时间:2016-10-25 11:27:13

标签: asp.net iis ip-restrictions

我正在尝试使用IIS Dynamic IP Restrictions来限制来自同一IP的请求。如果我从IIS UI编辑动态限制设置,我运行模块并且请求被很好地限制。这很好但是我需要在不同的URL上有不同的费率。登录应该比静态资源更严格。我正在尝试在web.config中使用locations来实现此目的。

<configuration>
  <location path="foo">
  <system.webServer>   
    <security>     
      <dynamicIpSecurity enableLoggingOnlyMode="true">       
         <denyByRequestRate enabled="true" maxRequests="1" 
            requestIntervalInMilliseconds="5000" />
      </dynamicIpSecurity>
   </security>  
  </system.webServer> 
  </location>
</configuration>

不幸的是,这不适用。我很确定它与我的应用程序无关,因为它在带有一个HTML文件的静态Web上也不起作用。我也非常确定位置路径是否正确,因为如果我添加...<deny users="*" />请求会被阻止。

1 个答案:

答案 0 :(得分:4)

这是不可能的。从模块描述:

  

此模块可以配置为分析和阻止   可以在Web服务器或Web站点级别完成。

在内部,这是作为HttpModule(本机HttpModule)实现的。 HttpModule为每个请求运行 - 位置不会影响它们。供参考退房 Exclude certain pages from using a HTTPModule

所以你唯一的另一个选择(如果你需要支持这个确切的模块)就是将你的网站组织成几个迷你应用程序。

喜欢

/ - &gt;根Web应用程序

/内容 - &gt;具有静态内容的Web应用程序

/登录 - &gt;具有登录功能的Web应用程序

在每个迷你应用程序中,使用适当的规则创建web.config。