2010-10-27 19 views

回答

22

正確的方式做到這一點是使用這樣的:

<configuration> 
    <system.webServer> 
     <security> 
      <requestFiltering> 
       <hiddenSegments> 
        <add segment="My_Directory" /> 
       </hiddenSegments> 
      </requestFiltering> 
     </security> 
    </system.webServer> 
</configuration> 

這允許您仍然可以訪問位於那裏從IUSR帳戶文件,但是阻止了對那裏的文件的實際請求被直接填充。

請注意,這將阻止該目錄中的文件以及任何子目錄,無論該目錄出現在哪裏 - 即使它本身是其他目錄的子目錄。

+0

上述代碼應放置在與要拒絕訪問的目錄相同的目錄中的web.config文件中。我測試過把它放在我的根級web.config中,它阻止了對整個站點的訪問。把它放在同一目錄下的一個單獨的web.config文件中,當試圖訪問該目錄時會返回404錯誤(儘管我確定它返回的錯誤類型可以在IIS中更改)。 – Tiffany 2017-08-17 15:41:33

1

從該文件夾中刪除IIS_IUSR權限。

我認爲它一般下的「Internet來賓帳戶」

+3

如果你這樣做您可能也會阻止任何通過Web應用程序訪問這些文件的功能,這可能不是您想要的功能。 – 2010-10-27 23:38:04

+0

我刪除IIS_IUSR將工作在我的情況下,我想保存在那裏用戶上傳,現在我將它們保存在C:驅動器上的網站文件夾外的某個位置,並且此上傳文件夾沒有IIS_IUSR權限,我仍然可以從我的網站代碼訪問它。 – 2010-10-27 23:57:35

2

正如鏈接唯一的答案指出,hiddenSegments是適合這項工作的工具。轉到IIS,然後siteFeatures找到Request Filtering(必須安裝在Server Manager)現在添加您想阻止訪問的目錄名稱,或者真正的URL的任何部分。這種方法確實需要一個唯一的URL或目錄名的網站URL中任何級別上,這個段的其他任何可以發生,將導致該請求被阻止:

http://www.iis.net/configreference/system.webserver/security/requestfiltering/hiddensegments