2012-03-21 93 views
11

En mi aplicación web, todas las páginas .aspx residen en el directorio de páginas. La estructura del proyecto se muestra a continuación:Deshabilitar listado de directorios en IIS

enter image description here

la Home.aspx se establece como página de inicio y el archivo Web.config de la carpeta contiene Páginas:

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

Y el principal Web.config tiene:

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

Por eso, cuando se inicia la aplicación se redirige a la página de conexión con la URL:

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

Ahora si elimino el

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

desde esa URL y pulse Intro es llevándome a la lista de directorio:

enter image description here

Lo que quiero que me enviará de nuevo a la página de conexión situada en

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

¿Cómo puedo lograr esto? Tu ayuda será apreciada

Gracias.

El localhost: enter image description here

Respuesta

17

Es necesario desactivar la exploración de directorios de IIS o desde el web.config

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

esta entrada anterior se aplica a IIS 7+, para IIS 6 que tendrá para hacerlo desde IIS Manager

+0

Gracias por su respuesta. Si navego a localhost como en la imagen de arriba, muestra IIS7. Pero en Inicio-> Panel de control-> Herramientas administrativas, puedo ver que hay dos administradores de servicios de información de Internet. Uno es los administradores de servicios de información de Internet (IIS) 6.0 y otros administradores de servicios de información de Internet (IIS). No puedo entender si estoy ejecutando o no en IIS7. También estoy ejecutando la aplicación desde Visual Studio. He intentado su código tanto en Web.config principal como en Web.config de Pages. Pero ninguno de ellos está funcionando. ¿Cómo puedo desactivarlo desde el Administrador de IIS6? –

+0

@Tapas Bose actualmente su aplicación se está ejecutando en el servidor de desarrollo Asp.net (Cassini). Es posible que deba configurarlo para que se ejecute en IIS yendo a las propiedades del proyecto> pestaña Web y configurándolo en IIS y creando un directorio virtual – scartag

+1

He agregado su código en Web.config principal y he cambiado las propiedades para usar el servidor IIS local y ahora recibo el error HTTP 403.14 - mensaje de error prohibido si trato de buscar http: //localhost/EMSApplication.Web/Pages/. Esto ayudará a proteger el sitio web. Pero, ¿hay alguna forma de volver a redirigir en la página de inicio de sesión? Gracias por tu ayuda. –

Cuestiones relacionadas