為什麼 IIS7/7.5 中的網站預設啟用 ASP.NET ISAPI 過濾器?
**編輯:*由於下面我的一些問題的答案具有潛在的關鍵性質,我要添加這個強烈警告:除非您確切知道它在做什麼,否則不要刪除我在這裡所說的過濾器;*您的應用程序的安全性可能會受到威脅。
我剛剛注意到,我為 IIS7.5 配置的新 Win 2008R2 伺服器在根配置中預設啟用了 ASP.NET 的 ISAPI 過濾器,因此在所有站點上都是如此。我還檢查了我可以訪問的一台 2008 和一台 2008R2 伺服器,它們也有相同的東西。
我的理解是,只有在經典模式下執行 Web 應用程序時才需要這些;我的應用程序都在集成模式下執行。我從要移動到新伺服器的一個 ASP.NET 站點中刪除了所有與 ASP.NET 相關的過濾器,它似乎沒有對應用程序造成任何問題。
事實上,在我刪除 v2 應用程序上的 32 位 v4 條目之前,它*確實引起了問題。*但後來我把它們全部刪除了,因為我認為根本不需要它們。
所以我的主要問題是:為了支持需要它們執行的經典模式應用程序,它們預設處於根配置中的唯一原因是什麼?
第二個問題:我不應該在所有以集成模式執行的站點上刪除它們,假設它們至少什麼都不做,最壞的情況是通過現有的(或者更糟糕的是,實際處理請求!)
額外的問題:你認為如果我現在重新訪問這兩個以前的伺服器上的網站內容目錄的文件權限方案,我會因為發現上述內容而感到驚訝或註意到一些變化嗎?
編輯:請注意,刪除 ISAPI 過濾器的 aspnet_filter.dll 條目實際上可能很**危險。**下面頁面 URL 中 IsapiFilterModule 上的條目指出,受保護內容的過濾是通過此過濾器完成的。例如;
.config
.cs
和.vb
文件。 http://learn.iis.net/page.aspx/121/iis-7-modules-overview/
我最初也是這麼認為的,但是沒有——實際上過濾器在兩種模式下都提供了一些功能——例如,無 cookie 會話支持。
將 ISAPI 過濾器行為與 ISAPI 擴展行為分開 - 擴展是集成模式所摒棄的。