禁用IIS中的目录列表

Tap*_*ose 13 asp.net iis url directory-listing

在我的Web应用程序中,所有.aspx页面都位于Pages目录中.项目结构如下所示:

在此输入图像描述

Home.aspx设置为Start Page,Pages文件夹的Web.config文件包含:

<configuration>
<location path="Secured">
    <system.web>
    <authorization>     
        <deny users="?"/>
        <allow users="*"/>
    </authorization>
    </system.web>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

主Web.config有:

<authentication mode="Forms">
  <forms loginUrl="~/Pages/Login.aspx" timeout="2880" defaultUrl="~/Pages/Secured/Home.aspx" />
</authentication>
Run Code Online (Sandbox Code Playgroud)

因此,当应用程序启动时,它会使用以下URL重定向到"登录"页面:

HTTP://本地主机:2453 /页/的Login.aspx RETURNURL =%2fPages%2fSecured%2fHome.aspx

现在如果我删除了

为Login.aspx?RETURNURL =%2fPages%2fSecured%2fHome.aspx

从该URL并按回车它将带我到目录列表:

在此输入图像描述

我想要它再次将我发送到位于的登录页面

HTTP://本地主机:2453 /页/为Login.aspx

我怎样才能做到这一点?感谢您的帮助.

谢谢.

本地主机: 在此输入图像描述

sca*_*tag 20

您需要禁用IIS或web.config中的目录浏览

<configuration>
  <location path="Secured">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>
</configuration>
Run Code Online (Sandbox Code Playgroud)

上面的这个条目适用于IIS 7+,对于IIS 6,您必须从IIS管理器执行此操作


Tah*_*667 8

有两种方法可以禁用目录列表:这已经过测试并且适用于 IIS 10。

1. 网页配置

<configuration>
   <system.webServer>
       <directoryBrowse enabled="false" /> <!--this line will disable directory browsing-->
   </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

2. 互联网信息服务

转到 Internet 信息服务 (IIS) 并查找该Directory Browser选项。选择它,在右上角您会看到一个选项Open Feature。单击它,它将带您进入另一个选项卡。现在选择禁用,您会看到浏览已被禁用。

IIS管理器 IIS目录浏览