禁用IIS中的目录列表

时间:2012-03-21 14:19:10

标签: asp.net url iis directory-listing

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

enter image description here

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

<configuration>
<location path="Secured">
    <system.web>
    <authorization>     
        <deny users="?"/>
        <allow users="*"/>
    </authorization>
    </system.web>
</location>
</configuration>

主Web.config有:

<authentication mode="Forms">
  <forms loginUrl="~/Pages/Login.aspx" timeout="2880" defaultUrl="~/Pages/Secured/Home.aspx" />
</authentication>

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

  

http://localhost:2453/Pages/Login.aspx?ReturnUrl=%2fPages%2fSecured%2fHome.aspx

现在如果我删除了

  

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

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

enter image description here

我希望它能再次将我发送到位于

的登录页面
  

http://localhost:2453/Pages/Login.aspx

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

感谢。

localhost: enter image description here

2 个答案:

答案 0 :(得分:19)

您需要从IIS或web.config

禁用目录浏览
<configuration>
  <location path="Secured">
    <system.webServer>
      <directoryBrowse enabled="false" />
    </system.webServer>
  </location>
</configuration>

以上此条目适用于IIS 7+,对于IIS 6,您必须从IIS管理器

执行此操作

答案 1 :(得分:0)

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

1。 Web.config

<configuration>
   <system.webServer>
       <directoryBrowse enabled="false" /> <!--this line will disable directory browsing-->
   </system.webServer>
</configuration>

2。 IIS

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

IIS manager IIS Directory Browsing