Iis 7 如何使IIS7停止为文件夹提供服务?

Iis 7 如何使IIS7停止为文件夹提供服务?,iis-7,Iis 7,我知道通过解除IIS不会向公众提供应用程序数据或bin文件夹内容。 如何将另一个文件夹设置为不将服务器设置为公用?从该文件夹中删除IIS\u IUSR权限 我认为一般来说,在“互联网客户账户”下,正确的做法是: <configuration> <system.webServer> <security> <requestFiltering> <hiddenSegments&g

我知道通过解除IIS不会向公众提供应用程序数据或bin文件夹内容。

如何将另一个文件夹设置为不将服务器设置为公用?

从该文件夹中删除IIS\u IUSR权限


我认为一般来说,在“互联网客户账户”下,正确的做法是:

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

这允许您仍然从
IUSR
帐户访问位于那里的文件,但防止直接填写对那里的文件的实际请求


请注意,这将阻止该目录和任何子目录中的文件,无论该目录出现在何处—即使它本身是其他目录的子目录。

正如仅链接的答案所指出的,
hiddenSegments
是该作业的正确工具。转到
IIS
,然后进入
站点
并在
功能中
查找
请求筛选
(必须安装在
服务器管理器
)现在添加要阻止访问的目录名或URL的任何部分。这种方法确实要求在站点中使用唯一的url或目录名,否则在url中任何级别出现的任何其他段都将导致该请求被阻止:


如果您这样做,您可能还会阻止通过web应用程序访问这些文件的任何功能,这可能不是预期的。在我的情况下,我删除IIS\u IUSR会起作用,我想保存这些用户的上传,现在我将它们保存在c:驱动器上的网站文件夹外的某个地方,并且此上载文件夹没有IIS_IUSR权限,我仍然可以通过我的网站代码访问它。上述代码应放在与您要拒绝访问的目录相同的目录中的web.config文件中。我测试过将它放在我的根级别web.config中,它阻止了对整个站点的访问。如果将它放在同一目录中的单独web.config文件中,则在尝试访问该目录时会返回404错误(尽管我确信它返回的错误类型可以在IIS中更改)。。“My_目录”不是文字,应该是您的目录名!