4
是否有任何方法可以配置IIS 7.0+(或7.5+),以便某些路徑完全禁用「請求篩選」。也就是說,禁用某些路徑的IIS請求篩選
http://host.local/foo/bar.cs
是被禁止的(因爲服務*.cs
文件在applicationHost.config
明確禁止的),但
http://host.local/foo/allow-all/bar.cs
是允許的。
是否有任何方法可以配置IIS 7.0+(或7.5+),以便某些路徑完全禁用「請求篩選」。也就是說,禁用某些路徑的IIS請求篩選
http://host.local/foo/bar.cs
是被禁止的(因爲服務*.cs
文件在applicationHost.config
明確禁止的),但
http://host.local/foo/allow-all/bar.cs
是允許的。
在你allow-all
目錄,你可以創建一個web.config文件具有以下配置:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".cs" />
</fileExtensions>
</requestFiltering>
</security>
<staticContent>
<mimeMap fileExtension=".cs" mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
此配置將刪除請求過濾的.cs
擴展。此外,爲了正確地爲IIS提供內容,它需要MIME類型,因此.cs
擴展名以文本/純文本形式添加。
這些更改也適用於allow-all
的所有子目錄。此配置適用於集成應用程序池。由於存在明確禁止使用.cs的HTTP處理程序,因此Classic可能需要進行其他更改。
這很好,但我沒有'/ allow-all'路徑本身:它是一個由ASP.NET MVC Routing處理的動態URL。這在這種情況下是可能的嗎? –
@Anton如果它是動態的,那麼最好嘗試自己提供服務 - 爲一些腳本創建url重寫規則,該腳本將讀取併發送所請求文件的內容到瀏覽器中。我只是不確定是否在請求過濾之前或之後執行URL重寫模塊 - 我認爲之後(對於真實/現有文件),但對於不存在的URL可能不是這種情況。 – LazyOne
@LazyOne URL重寫似乎發生在請求過濾之後。或者,至少我安裝的自定義處理程序是窒息的,直到我在我的過濾器中添加 以查找相關路徑。 –
jklemmack