2016-10-25 19 views
4

我試圖使用IIS Dynamic IP Restrictions來限制來自同一IP的請求。如果我從IIS用戶界面編輯動態限制設置,則模塊正在運行,並且請求被很好地限制。這很好,但我需要在不同的網址上有不同的價格。例如,登錄應該比靜態資源更嚴格。我試圖在web.config中使用locations來實現此目的。web.config位置中的IIS動態IP限制

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

不幸的是,這不適用。我很確定它與我的應用程序無關,因爲它在具有一個HTML文件的靜態網站上也不起作用。我也很確定位置路徑是正確的,因爲如果我添加...<deny users="*" />,請求被阻止。

+0

您是否嘗試將'enableLoggingOnlyMode'設置爲'false'?根據[本頁](https://www.iis.net/configreference/system.webserver/security/dynamicipsecurity)請求在設置爲「true」時實際上並未被阻止。 – user1429080

+0

謝謝,是的,我試過真,假,也沒有屬性。不幸的是,這對節流沒有影響。 –

回答

2

這是不可能的。從模塊描述:

可以配置此模塊,以便分析和阻止 可以在Web服務器或網站級別完成。

內部這是實現爲HttpModule(即原生HttpModule)。 HttpModule爲每個請求運行 - 位置不會影響它們。參考檢查 Exclude certain pages from using a HTTPModule

所以你唯一的其他選擇(如果你需要支持這個確切的模塊)是組織您的網站,而不是幾個小應用程序。

/- >根Web應用程序

/內容 - >靜態內容的Web應用程序

/登錄 - >與登錄功能

,並在每一個小型的Web應用程序-application用適當的規則創建web.config。

+0

謝謝。我希望對特定的休息服務方法有特定的規則,所以迷你應用程序對我來說不是選擇。我將不得不使用不同的應用程序級別限制模塊...如果明天沒有其他事情會彈出,我會接受答案。 –