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

Jan*_*aha 9 asp.net iis ip-restrictions

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

<configuration>
  <location path="foo">
  <system.webServer>   
    <security>     
      <dynamicIpSecurity enableLoggingOnlyMode="true">       
         <denyByRequestRate enabled="true" maxRequests="1" 
            requestIntervalInMilliseconds="5000" />
      </dynamicIpSecurity>
   </security>  
  </system.webServer> 
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

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

Ond*_*dar 5

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

可以配置此模块,以便可以在Web服务器或网站级别上进行分析和阻止。

在内部,这是作为HttpModule(即本地HttpModule)实现的。HttpModule针对每个请求运行-位置不会影响它们。作为参考,请检查 使用HTTPModule排除某些页面

因此,您唯一的其他选择(如果您需要支持此确切的模块)是将您的站点组织为几个微型应用程序。

喜欢

/->根Web应用程序

/ Content->具有静态内容的Web应用程序

/登录->具有登录功能的Web应用程序

然后在每个微型应用程序中使用适当的规则创建web.config。