如何使文件夹及其内容无法通过 HTTP 访问

How to make a folder and its content inaccessible via HTTP

我的项目中有一个名为 "Template" 的文件夹,我想让它无法通过 HTTP 访问。我添加了一个 web.config 文件。它使文件夹不可访问,但用户可以访问文件夹中的任何内容。

他们无法访问 "Template" 文件夹,但他们可以访问 "Template\index.html"

这是我的web.config。

<?xml version="1.0"?>
<configuration>
    <system.web>
      <authorization>
        <deny users="*"/> 
      </authorization>
    </system.web>
</configuration>

如何使内容无法访问?

这可以通过 IIS 请求过滤器来实现。以同样的方式无法浏览 bin 内容。

在 system.webserver 部分下添加以下内容。在那里我启用了目录浏览只是为了检查即使启用了目录浏览用户也无法浏览 "Template" 文件夹中的文件。

如果不需要目录浏览,设置<directoryBrowse enabled="false" />

<?xml version="1.0"?>
<configuration>
  <system.webServer>
    <directoryBrowse enabled="true" />
    <security>
      <requestFiltering>
        <hiddenSegments>
          <add segment="Template" />
        </hiddenSegments>
      </requestFiltering>
    </security>
  </system.webserver>
</configuration>

有关详细信息,请参阅此 post.