2012-03-21 4 views
11

Nella mia applicazione Web tutte le pagine .aspx si trovano nella directory Pages. La struttura del progetto è la seguente:Disabilita elenco directory in IIS

enter image description here

Il Home.aspx è impostato come pagina iniziale e il file web.config della cartella pagine contiene:

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

E il web.config principale ha:

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

Così, quando l'applicazione lo lancia reindirizza alla pagina di accesso con l'URL:

012.

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

Ora, se cancello la

Login.aspx? ReturnUrl =% 2fPages% 2fSecured% 2fHome.aspx

da tale URL e premere Invio è portami alla Directory Listing:

enter image description here

Quello che voglio che sarà ancora una volta mi mandi alla pagina di accesso situato a

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

Come posso raggiungere questo obiettivo? Il tuo aiuto sarà apprezzato.

Grazie.

Il localhost: enter image description here

risposta

17

È necessario disattivare l'esplorazione directory da IIS o dal web.config

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

questa voce sopra si applica a IIS 7+, per IIS 6 dovrete per farlo da IIS Manager

+0

Grazie per la risposta. Se navighi su localhost come nell'immagine qui sopra, sta mostrando IIS7. Ma in Start-> Pannello di controllo-> Strumenti di amministrazione vedo che ci sono due gestori di Internet Information Services. Uno è Manager di Internet Information Services (IIS) 6.0 e un altro Gestore di servizi di informazioni Internet (IIS). Non riesco a capire se sono in esecuzione o meno in IIS7. Inoltre sto eseguendo l'applicazione da Visual Studio. Ho provato il tuo codice sia in Web.config principale che in Web.config di Pages. Ma nessuno di loro sta funzionando. Come posso disabilitarlo da IIS6 Manager? –

+0

@Tapas Bose attualmente la tua app è in esecuzione sul server di sviluppo Asp.net (Cassini). Potrebbe essere necessario configurarlo per l'esecuzione su IIS andando alle proprietà del progetto> scheda Web e impostandolo su IIS e creando una directory virtuale – scartag

+1

Ho aggiunto il codice in Web.config principale e ho modificato le proprietà per utilizzare il server IIS locale e ora ricevo l'errore HTTP 403.14 - Messaggio di errore vietato se provo a navigare su http: //localhost/EMSApplication.Web/Pages/. Questo aiuterà a proteggere il sito web. Ma non c'è un modo per reindirizzare nuovamente nella pagina di accesso? Grazie per l'aiuto. –