2012-03-21 76 views
11

在我的Web應用程序中,所有的.aspx頁面都駐留在Pages目錄中。項目結構如下圖所示:在IIS中禁用目錄列表

enter image description here

的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 image description here

我想要什麼,它會再次送我去位於

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

登錄頁面我怎樣才能做到這一點?你的幫助表示讚賞。

謝謝。

本地主機: enter image description here

回答

17

你需要從IIS或從web.config禁用目錄瀏覽

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

高於這個條目適用於IIS 7+,對於IIS 6你必須從IIS管理器執行它

+0

感謝您的回覆。如果我像上圖中那樣導航到本地主機,它顯示IIS7。但在開始 - >控制面板 - >管理工具中,我可以看到有兩個Internet信息服務管理器。一個是Internet信息服務(IIS)6.0管理器和另一個Internet信息(IIS)服務管理器。我無法理解我是否在IIS7中運行。另外我正在從Visual Studio執行應用程序。我已經在主Web.config和Pages的Web.config中嘗試了您的代碼。但他們都沒有工作。我怎樣才能從IIS6管理器中禁用它? – 2012-03-21 14:36:36

+0

@Tapas Bose目前您的應用程序正在Asp.net開發服務器(Cassini)上運行。您可能需要將其配置爲在IIS上運行,方法是轉到項目屬性> Web選項卡並將其設置爲IIS並創建一個虛擬目錄 – scartag 2012-03-21 14:39:52

+1

我在主Web.config中添加了代碼,並更改了使用本地IIS服務器的屬性現在我得到HTTP錯誤403.14 - 禁止的錯誤消息,如果我嘗試瀏覽http://localhost/EMSApplication.Web/Pages/。這將有助於保護網站。但是在登錄頁面中沒有任何方法可以重新定向嗎?謝謝你的幫助。 – 2012-03-21 15:14:21