Creación de un directorio Explorar página mediante ASP


Recomendamos encarecidamente que todos los usuarios se actualicen a la versión 7.0 de Microsoft Internet Information Services (IIS) que se ejecuta en Microsoft Windows Server 2008. IIS 7.0 aumenta considerablemente la seguridad de la infraestructura web. Para obtener más información sobre temas relacionados con la seguridad de IIS, visite el siguiente sitio web de Microsoft:Para obtener más información sobre IIS 7.0, visite el siguiente sitio web de Microsoft:

Resumen


Microsoft IIS proporciona listados de archivos y carpetas a través de la configuración de control de acceso de exploración de directorios, que se puede establecer en el nivel de Web o la carpeta. Mediante los objetos de sistema de archivo para las páginas Active Server (ASP), puede crear páginas que funcionen como exploración sin tener que habilitar el acceso de exploración de directorios y permiten un mayor nivel de personalización y de directorios.

Más información


Guarde el siguiente código ASP como "Default.asp" (sin las comillas) en las carpetas donde usted necesite listados de directorios:Advertencia: cualquier uso por que del código proporcionado en este artículo está en su propio riesgo. Microsoft proporciona este código "tal cual" sin garantía de ningún tipo, expresa o implícita, incluyendo pero sin limitarse a las garantías implícitas de comerciabilidad y/o idoneidad para un propósito particular.
<%@LANGUAGE="VBSCRIPT"%><%   Option Explicit   On Error Resume Next   ' this section is optional - it just denies anonymous access   If Request.ServerVariables("LOGON_USER")="" Then      Response.Status = "401 Access Denied"   End If   ' declare variables   Dim objFSO, objFolder   Dim objCollection, objItem   Dim strPhysicalPath, strTitle, strServerName   Dim strPath, strTemp   Dim strName, strFile, strExt, strAttr   Dim intSizeB, intSizeK, intAttr, dtmDate   ' declare constants   Const vbReadOnly = 1   Const vbHidden = 2   Const vbSystem = 4   Const vbVolume = 8   Const vbDirectory = 16   Const vbArchive = 32   Const vbAlias = 64   Const vbCompressed = 128   ' don't cache the page   Response.AddHeader "Pragma", "No-Cache"   Response.CacheControl = "Private"   ' get the current folder URL path   strTemp = Mid(Request.ServerVariables("URL"),2)   strPath = ""   Do While Instr(strTemp,"/")      strPath = strPath & Left(strTemp,Instr(strTemp,"/"))      strTemp = Mid(strTemp,Instr(strTemp,"/")+1)         Loop   strPath = "/" & strPath   ' build the page title   strServerName = UCase(Request.ServerVariables("SERVER_NAME"))   strTitle = "Contents of the " & strPath & " folder"   ' create the file system objects   strPhysicalPath = Server.MapPath(strPath)   Set objFSO = Server.CreateObject("Scripting.FileSystemObject")   Set objFolder = objFSO.GetFolder(strPhysicalPath)%><html><head><title><%=strServerName%> - <%=strTitle%></title><meta name="GENERATOR" content="The Mighty Hand of Bob"><style>BODY  { BACKGROUND: #cccccc; COLOR: #000000;        FONT-FAMILY: Arial; FONT-SIZE: 10pt; }TABLE { BACKGROUND: #000000; COLOR: #ffffff; }TH    { BACKGROUND: #0000ff; COLOR: #ffffff; }TD    { BACKGROUND: #ffffff; COLOR: #000000; }TT    { FONT-FAMILY: Courier; FONT-SIZE: 11pt; }</style></head><body><h1 align="center"><%=strServerName%><br><%=strTitle%></h1><h4 align="center">Please choose a file/folder to view.</h4><div align="center"><center><table width="100%" border="0" cellspacing="1" cellpadding="2"><tr>   <th align="left">Name</th>   <th align="left">Bytes</th>   <th align="left">KB</th>   <th align="left">Attributes</th>   <th align="left">Ext</th>   <th align="left">Type</th>   <th align="left">Date</th>   <th align="left">Time</th></tr><%   ''''''''''''''''''''''''''''''''''''''''   ' output the folder list   ''''''''''''''''''''''''''''''''''''''''   Set objCollection = objFolder.SubFolders   For Each objItem in objCollection      strName = objItem.Name      strAttr = MakeAttr(objItem.Attributes)            dtmDate = CDate(objItem.DateLastModified)%><tr>   <td align="left"><b><a href="<%=strName%>"><%=strName%></a></b></td>   <td align="right">N/A</td>   <td align="right">N/A</td>   <td align="left"><tt><%=strAttr%></tt></td>   <td align="left"><b><DIR></b></td>   <td align="left"><b>Directory</b></td>   <td align="left"><%=FormatDateTime(dtmDate,vbShortDate)%></td>   <td align="left"><%=FormatDateTime(dtmDate,vbLongTime)%></td></tr><% Next %><%   ''''''''''''''''''''''''''''''''''''''''   ' output the file list   ''''''''''''''''''''''''''''''''''''''''   Set objCollection = objFolder.Files   For Each objItem in objCollection      strName = objItem.Name      strFile = Server.HTMLEncode(Lcase(strName))      intSizeB = objItem.Size      intSizeK = Int((intSizeB/1024) + .5)      If intSizeK = 0 Then intSizeK = 1      strAttr = MakeAttr(objItem.Attributes)      strName = Ucase(objItem.ShortName)      If Instr(strName,".") Then strExt = Right(strName,Len(strName)-Instr(strName,".")) Else strExt = ""      dtmDate = CDate(objItem.DateLastModified)%><tr>   <td align="left"><a href="<%=strFile%>"><%=strFile%></a></td>   <td align="right"><%=FormatNumber(intSizeB,0)%></td>   <td align="right"><%=intSizeK%>K</td>   <td align="left"><tt><%=strAttr%></tt></td>   <td align="left"><%=strExt%></td>   <td align="left"><%=objItem.Type%></td>   <td align="left"><%=FormatDateTime(dtmDate,vbShortDate)%></td>   <td align="left"><%=FormatDateTime(dtmDate,vbLongTime)%></td></tr><% Next %></table></center></div></body></html><%   Set objFSO = Nothing   Set objFolder = Nothing   ' this adds the IIf() function to VBScript   Function IIf(i,j,k)      If i Then IIf = j Else IIf = k   End Function   ' this function creates a string from the file atttributes   Function MakeAttr(intAttr)      MakeAttr = MakeAttr & IIf(intAttr And vbArchive,"A","-")      MakeAttr = MakeAttr & IIf(intAttr And vbSystem,"S","-")      MakeAttr = MakeAttr & IIf(intAttr And vbHidden,"H","-")      MakeAttr = MakeAttr & IIf(intAttr And vbReadOnly,"R","-")   End Function%>
Porque esta página funciones en lugar de acceso de exploración del directorio, debe deshabilitar la exploración de directorios para cualquier carpeta donde se guarda esta página. Para ello, utilice los métodos siguientes.

Método 1: Windows NT Server 4.0

  1. Haga clic en Inicio, haga clic en Ejecutar, escriba inetmgry, a continuación, haga clic en Aceptar.
  2. Haga doble clic en el servidor que está ejecutando el servicio WWW.
  3. Haga clic en la ficha directorios , haga clic en la carpeta que desee y, a continuación, haga clic para desactivar la casilla de verificación Permite el examen de directorios .
  4. Haga clic en Aceptar.

Método 2: Windows 2000 Server

  1. Haga clic en Inicio, haga clic en Ejecutar, escriba inetmgry, a continuación, haga clic en Aceptar.
  2. Haga doble clic en el servidor que desee. Expanda el sitio Web que desee, si es necesario.
  3. (Ratón) en el sitio Web o el directorio virtual que desee y, a continuación, haga clic en Propiedades.
  4. Haga clic en la ficha Directorio principal y, a continuación, haga clic para desactivar la casilla de verificación examen de directorios . Nota: La ficha Directorio particular puede aparecer como la ficha directorio o Directorio Virtual .
  5. Haga clic en Aceptar.
Para obtener más información acerca de los lenguajes de secuencias de comandos de Microsoft, consulte el siguiente sitio Web de Microsoft: