我正在尝试使用IIS动态IP限制来限制来自同一IP的请求。我有模块运行和请求很好地节流,如果我从IIS UI编辑动态限制设置。这很好,但我需要对不同的url有不同的利率。例如,登录应该比静态资源更严格。我正试图在网络中使用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="*" />
,请求就会被阻止。
这不可能。从模块描述:
该模块可以配置为分析和阻塞可以在Web服务器或Web站点级别完成。
在内部这是作为HttpModule实现的(即本地的HttpModule)。HttpModule对每个请求都运行——位置不影响它们。供参考排除某些页面使用HTTPModule
所以你唯一的其他选择(如果你需要支持这个确切的模块)是将你的网站组织成几个小应用程序。
/->根web应用
/Content ->带有静态内容的web应用程序
/Login ->具有登录功能的web应用程序
并在每个小应用程序中创建web。