Skapa en sida med hjälp av ASP-katalogbläddring


Vi rekommenderar alla användare att uppgradera till Microsoft Internet Information Services (IIS) version 7.0 körs på Microsoft Windows Server 2008. IIS 7.0 ökar väsentligt säkerheten för webbinfrastrukturen. Mer information om IIS-säkerhet-relaterade ämnen finns på följande Microsoft-webbplats:Mer information om IIS 7.0 finns på följande Microsoft-webbplats:

Sammanfattning


Microsoft IIS innehåller tablåer för fil- och mappnamn via katalogbläddring access control inställningen, som kan ställas in på Internet-nivå eller mapp. Med vilka filsystemsobjekt för Active Server Pages (ASP) kan skapa du sidor som fungerar som katalogbläddring utan att behöva aktivera katalogbläddring åtkomst och tillåta en högre nivå av anpassning.

Mer information


Spara följande ASP-kod som ”Default.asp” (utan citattecken) i mappar där du behöver kataloglistor:varning: alla användning genom du av den kod som anges i denna artikel är på din egen RISK. Microsoft tillhandahåller denna kod ”i befintligt skick” utan några garantier, varken uttryckliga eller underförstådda, inklusive men inte begränsat till underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål.
<%@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%>
Eftersom den här sidan fungerar i stället för webbläsarens katalogåtkomst, bör du inaktivera katalogbläddring för alla mappar där den här sidan sparas. Det gör du genom att använda följande metoder.

Metod 1: Windows NT Server 4.0

  1. Klicka på Startoch klicka på Kör, Skriv Inetmgr.
  2. Dubbelklicka på den server som kör WWW-tjänsten.
  3. Klicka på fliken kataloger , klicka på den mapp som du vill använda och avmarkera sedan kryssrutan Directory bläddring tillåten .
  4. Klicka på OK.

Metod 2: Windows 2000 Server

  1. Klicka på Startoch klicka på Kör, Skriv Inetmgr.
  2. Dubbelklicka på den server som du vill använda. Expandera webbplatsen som du vill, om det behövs.
  3. Högerklicka på webbplatsen eller den virtuella katalogen som du vill använda och klicka sedan på Egenskaper.
  4. Klicka på fliken Arbetskatalog och avmarkera sedan kryssrutan katalogbläddring . Obs! Fliken Arbetskatalog kan visas som fliken katalog eller Virtuell katalog .
  5. Klicka på OK.
Mer information om Microsoft-skriptspråk, läser du följande Microsoft-webbplats: