【问题标题】:Disable Directory Listing in IIS在 IIS 中禁用目录列表
【发布时间】:2012-04-06 01:54:42
【问题描述】:

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

Home.aspx 设置为起始页,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,它会将我带到目录列表:

我想要它再次将我发送到位于

的登录页面

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

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

谢谢。

本地主机:

【问题讨论】:

    标签: asp.net url iis directory-listing


    【解决方案1】:

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

    1。网页配置

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

    2。 IIS

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

    【讨论】:

      【解决方案2】:

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

      <configuration>
        <location path="Secured">
          <system.webServer>
            <directoryBrowse enabled="false" />
          </system.webServer>
        </location>
      </configuration>
      

      以上条目适用于 IIS 7+,对于 IIS 6,您必须从 IIS 管理器中进行操作

      【讨论】:

      • 感谢您的回复。如果我如上图所示导航到 localhost,它将显示 IIS7。但是在开始->控制面板->管理工具中,我可以看到有两个 Internet 信息服务管理器。一种是 Internet 信息服务 (IIS) 6.0 管理器,另一种是 Internet 信息 (IIS) 服务管理器。我无法理解我是否在 IIS7 中运行。我也正在从 Visual Studio 执行应用程序。我已经在主 Web.config 和页面的 Web.config 中尝试了您的代码。但他们都没有工作。如何从 IIS6 管理器中禁用它?
      • @Tapas Bose 目前您的应用程序正在 Asp.net 开发服务器 (Cassini) 上运行。您可能必须通过转到项目属性 > Web 选项卡并将其设置为 IIS 并创建虚拟目录来将其配置为在 IIS 上运行
      • 我已在主 Web.config 中添加了您的代码,并将属性更改为使用本地 IIS 服务器,现在我收到 HTTP 错误 403.14 - 如果我尝试浏览 localhost/EMSApplication.Web/Pages,则出现禁止错误消息。这将有助于保护网站。但是有没有办法在登录页面中再次重定向?感谢您的帮助。
      • @TapasBose 也许您应该在该文件夹(Default.aspx)上放置一个默认页面 403.14 意味着它无法加载任何默认文档,从您的屏幕截图中我可以看到您没有默认文件。
      猜你喜欢
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多