Tạo một thư mục duyệt trang bằng cách sử dụng ASP


Chúng tôi khuyên tất cả người dùng nâng cấp lên Microsoft Internet Information Services (IIS) phiên bản 7.0 chạy trên Microsoft Windows Server 2008. IIS 7.0 làm tăng đáng kể bảo mật cơ sở hạ tầng Web. Để biết thêm thông tin về các chủ đề liên quan đến bảo mật IIS, truy cập trang Web sau của Microsoft:Để biết thêm thông tin về IIS 7.0, hãy truy cập trang Web sau của Microsoft:

Tóm tắt


Microsoft IIS cung cấp danh sách tệp và cặp qua duyệt thư mục truy cập kiểm soát cài đặt, mà có thể được đặt trong thư mục hoặc Web mức. Sử dụng các đối tượng Hệ thống tệp cho trang chủ hiện hoạt (ASP), bạn có thể tạo trang web có chức năng như thư mục trình duyệt mà không cần phải kích hoạt truy cập duyệt thư mục và cho phép một mức độ lớn cá nhân hoá và tuỳ chỉnh.

Thông tin Bổ sung


Ư sau ASP mã "Default.asp" (không có dấu ngoặc kép) trong thư mục mà bạn yêu cầu danh sách thư mục:cảnh báo: bất kỳ sử dụng của bạn của công mã cung cấp IN này bài viết là tại của bạn của rủi ro. Microsoft cung cấp mã này "là" không có bảo hành nào, hoặc rõ ràng hay ngụ ý, bao gồm nhưng không giới hạn bảo đảm bán và/hoặc cho một mục đích cụ thể.
<%@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%>
Vì trang này hoạt động thay cho truy cập duyệt thư mục, bạn phải vô hiệu hoá duyệt thư mục cho bất kỳ thư mục nơi lưu trang này. Để thực hiện việc này, sử dụng các phương pháp sau.

Phương pháp 1: Windows NT Server 4.0

  1. Bấm bắt đầu, bấm chạy, loại Inetmgr, và sau đó bấm OK.
  2. Bấm đúp vào máy chủ đang chạy dịch vụ WWW.
  3. Nhấp vào tab thư mục , bấm vào cặp mà bạn muốn, sau đó bấm để bỏ chọn hộp kiểm Duyệt cho phép thư mục .
  4. Bấm OK.

Phương pháp 2: Windows 2000 Server

  1. Bấm bắt đầu, bấm chạy, loại Inetmgr, và sau đó bấm OK.
  2. Bấm đúp vào máy chủ mà bạn muốn. Mở rộng các trang Web mà bạn muốn, nếu cần thiết.
  3. Bấm chuột phải vào trang Web hoặc thư mục ảo mà bạn muốn, và sau đó bấm thuộc tính.
  4. Nhấp vào tab Thư mục gốc , và sau đó bấm để bỏ chọn hộp kiểm duyệt thư mục . Lưu ý Tab Thư mục gốc có thể xuất hiện dưới dạng tab thư mục hoặc Thư mục ảo tab.
  5. Bấm OK.
Để biết thêm thông tin về ngôn ngữ kịch bản Microsoft, hãy xem Web site sau của Microsoft: