如需本文的 Microsoft FrontPage 2002 版本,請參閱
321439。
如需本文的 Microsoft FrontPage 2000 版本,請參閱
321503。
本文內容
結論
本文將逐步告訴您,如何藉由使用 FrontPage 2003、動態伺服器網頁 (ASP) 和 Microsoft Access 資料庫建立密碼保護的簡單網頁解決方案。
重要
-
本文中的範例程式碼並非針對替代 FrontPage 2003 內建的安全性功能而設計。這些範例的目的是只針對瀏覽網站的使用者提供簡單的安全性機制。因此,FrontPage 2003 安全性並未與加入 Microsoft Access 資料庫的使用者名稱和密碼整合。
-
輸入的使用者名稱和密碼會以純文字格式在網際網路上傳輸。為了提升安全性,Microsoft 建議您使用可利用 Secure Sockets Layer (SSL) 加密的網頁伺服器。如需詳細資訊,請聯絡網站管理員或網際網路服務提供者 (ISP)。
在 FrontPage 2003 中使用 ASP 功能
在使用 FrontPage 2003 中的 ASP 功能之前,您必須能夠存取支援 ASP 的 Web 伺服器或磁碟網站。
回到頁首
在 FrontPage 2003 中建立新網站
注意 範例資訊假設您為網站登入提供名稱,且您將該網站建立為網站根目錄以外的子網頁。如果您使用登入名稱以外的名稱,或者在不同的位置建立網站,就必須依其修改本文所有的步驟。
如果要在 FrontPage 2003 中建立新網站,請依照下列步驟執行:
-
啟動 FrontPage 2003。
-
在 [檔案] 功能表上,按一下
[新增]。 -
在工作窗格中,按一下 [其他網站範本],然後按一下
[空網站]。 -
在 [選項] 之下,以下列格式輸入要儲存新網站的位置:
http://servername/logon其中 servername 是具備 ASP 功能的 Web 伺服器名稱。
-
按一下 [確定]。
命名為登入名稱的新的空網站會在 FrontPage 2003 中開啟。
回到頁首
建立資料庫
使用資料庫程式 (例如 Microsoft Office Access 2003),來建立資料庫以儲存使用者名稱和密碼。
注意 如果使用 Access 2003 以外的程式建立資料庫,請修改以下步驟。
如果要建立資料庫,請依照下列步驟執行:
-
啟動 Access 2003。
-
在 [檔案] 功能表上,按一下
[新增]。 -
在工作窗格中,按一下 [空白資料庫]。
-
輸入 logon.mdb 做為檔案名稱,然後按一下
[建立]。 -
在 [物件] 窗格中,按一下
[資料表],然後按一下 [新增]。 -
按一下 [設計檢視],然後按一下
[確定]。 -
在 [欄位名稱] 資料欄的第一個資料列中,輸入
UID。 -
在對應的 [資料類型] 資料欄中,按一下
[文字],然後按一下工具列上的 [主索引鍵] 按鈕 (會顯示為鑰匙符號)。 -
在 [欄位名稱] 資料欄的第二個資料列中,輸入
PWD,然後在 [資料類型] 資料欄的第二個資料列中按一下
[文字]。 -
在 [檔案] 功能表上,按一下
[儲存檔案]。 -
在 [資料表名稱] 方塊中,輸入
tblUsers,然後按一下 [確定]。 -
在 [檢視] 功能表上,按一下
[資料工作表檢視]。 -
在 [UID] 資料欄中輸入
testuser。
在 [PWD] 資料欄中輸入
password。 -
在 [檔案] 功能表上,按一下 [關閉],然後結束 Access 2003。
注意 為了安全性的因素,密碼限於使用大小寫字母和數字的混合。
回到頁首
匯入資料庫
將您建立的使用者名稱和密碼資料庫匯入 FrontPage 2003。如果要執行這項操作,請依照下列步驟執行:
-
在 FrontPage 2003 中開啟了登入網站時,按一下 [檔案] 功能表上的
[匯入]。 -
按一下 [新增檔案],找出並按一下您建立的
[logon.mdb] 檔案。
按一下 [開啟]。 -
按一下 [修改],在 [在 Web 內的檔案位置]方塊中輸入 _private/logon.mdb,然後按一下
[確定]。
注意 在檔案路徑的 private 之前有一個底線字元 (_)。 -
按一下 [確定] 匯入資料庫檔案。
-
如果接到提示要您為這個匯入的檔案建立資料庫連線,請按一下
[否]。
建立 ASP 網頁
您必須建立數個檔案,才能使用這個範例。首先,請建立網站的首頁、用於測試的「不安全」網頁和密碼保護網頁,以及登入網頁和登入 Include 檔案。
建立首頁
本網頁用來當做網站的預設網頁,包含您建立的非安全性網頁和密碼保護網頁的連結。如果要建立首頁,請依照下列步驟執行:
-
在 FrontPage 2003 中,按一下 [建立新的網頁]按鈕。
-
在文件視窗的頁尾區域,按一下 [程式碼] 以顯示程式碼檢視。
-
選取網頁中的所有 HTML 程式碼,然後加以移除。
-
將下列的 HTML 程式碼輸入或貼入網頁中。
<% @language="vbscript" %>
<html>
<head><title>Home Page</title></head>
<body>
<h3>Home Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<ul>
<li><a href="passwordprotect.asp">Password-Protected Page</a></li>
<li><a href="nonsecure.asp">Nonsecure Page</a></li>
</ul>
</body>
</html> -
用滑鼠右鍵按一下 [new_page_1.htm] 索引標籤,然後按一下
[儲存]。
將網頁以 default.asp的名稱儲存在登入網站的根資料夾中。 -
在 [檔案] 功能表上按一下 [關閉],關閉 default.asp 網頁。
建立非安全性的網頁
建立可供每個人檢視的一般 ASP 網頁。如果要建立非安全性的網頁,請依照下列步驟執行:
-
在 FrontPage 2003 中,按一下 [建立新的網頁]按鈕。
-
在文件視窗的頁尾區域,按一下 [程式碼] 以顯示程式碼檢視。
-
選取網頁中的所有 HTML 程式碼,然後加以移除。
-
將下列的 HTML 程式碼輸入或貼入網頁中。
<% @language="vbscript" %>
<html>
<head><title>Nonsecure Page</title></head>
<body>
<h3>Nonsecure Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<p><a href="default.asp">Back to default</a></p>
</body>
</html> -
用滑鼠右鍵按一下 [new_page_1.htm] 索引標籤,然後按一下
[儲存]。
將網頁以 default.asp的名稱儲存在登入網站的根資料夾中。 -
在 [檔案] 功能表上按一下 [關閉],關閉 nonsecure.asp 網頁。
建立密碼保護的網頁
此步驟中建立的網頁與您先前建立的非安全性網頁相同,只是您還必須在頁面頂端附近新增下列各行程式碼:
<!--#include virtual="/logon/_private/logon.inc"-->
當您將此程式碼行加入 ASP 網頁時,該網頁會由您建立的 logon.inc 檔案進行密碼保護。如果要建立密碼保護的網頁,請依照下列步驟執行:
-
在 FrontPage 2003 中,按一下 [建立新的網頁]按鈕。
-
在文件視窗的頁尾區域,按一下 [程式碼] 以顯示程式碼檢視。
-
選取網頁中的所有 HTML 程式碼,然後加以移除。
-
將下列的 HTML 程式碼輸入或貼入網頁中。
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
<html>
<head><title>Password-Protected Page</title></head>
<body>
<h3>Password-Protected Page</h3>
<p>You are logged on as:
<%
If Len(Session("UID")) = 0 Then
Response.Write "<b>You are not logged on.</b>"
Else
Response.Write "<b>" & Session("UID") & "</b>"
End If
%>
</p>
<p><a href="default.asp">Back to default</a>
</body>
</html> -
用滑鼠右鍵按一下 [new_page_1.htm] 索引標籤,然後按一下
[儲存]。
將網頁以 passwordprotect.asp的名稱儲存在登入網站的根資料夾中。 -
在 [檔案] 功能表上按一下 [關閉],關閉 passwordprotect.asp 網頁。
建立登入頁面
建立外觀與一般 Windows 登入對話方塊類似的登入頁面。嘗試存取密碼保護網頁的使用者會被傳送到這個頁面,以輸入其使用者名稱和密碼。如果要建立登入頁面,請依照下列步驟執行:
-
在 FrontPage 2003 中,按一下 [建立新的網頁]按鈕。
-
在文件視窗的頁尾區域,按一下 [程式碼] 以顯示程式碼檢視。
-
選取網頁中的所有 HTML 程式碼,然後加以移除。
-
將下列的 HTML 程式碼輸入或貼入網頁中。
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
<%
' Was this page posted to?
If UCase(Request.ServerVariables("HTTP_METHOD")) = "POST" Then
' If so, check the username/password that was entered.
If ComparePassword(Request("UID"),Request("PWD")) Then
' If comparison was good, store the user name...
Session("UID") = Request("UID")
' ...and redirect back to the original page.
Response.Redirect Session("REFERRER")
End If
End If
%>
<html>
<head><title>Logon Page</title>
<style>
body { font-family: arial, helvetica }
table { background-color: #cccccc; font-size: 9pt; padding: 3px }
td { color: #000000; background-color: #cccccc; border-width: 0px }
th { color: #ffffff; background-color: #0000cc; border-width: 0px }
</style>
</head>
<body bgcolor="#000000" text="#ffffff">
<h3 align="center"> </h3>
<div align="center"><center>
<form action="<%=LOGON_PAGE%>" method="POST">
<table border="2" cellpadding="2" cellspacing="2">
<tr>
<th colspan="4" align="left">Enter User Name and Password</th>
</tr>
<tr>
<td> </td>
<td colspan="2" align="left">Please type your user name and password.</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Site</td>
<td align="left"><%=Request.ServerVariables("SERVER_NAME")%> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">User Name</td>
<td align="left"><input name="UID" type="text" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Password</td>
<td align="left"><input name="PWD" type="password" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><input type="submit" value="LOGON"></td>
<td> </td>
</tr>
</table>
</form>
</center></div>
</body>
</html> -
用滑鼠右鍵按一下 [new_page_1.htm] 索引標籤,然後按一下
[儲存]。
將網頁以 logon.asp的名稱儲存在登入網站的根資料夾中。 -
在 [檔案] 功能表上按一下 [關閉],關閉 logon.asp 網頁。
建立登入 Include 檔案
Include 檔案會提供使用者名稱和密碼功能,而且密碼保護的網頁和登入網頁都會用到這個檔案。如果要建立登入 Include 檔案,請依照下列步驟執行:
-
在 FrontPage 2003 中,按一下 [建立新的網頁]按鈕。
-
在文件視窗的頁尾區域,按一下 [程式碼] 以顯示程式碼檢視。
-
選取網頁中的所有 HTML 程式碼,然後加以移除。
-
將下列的 HTML 程式碼輸入或貼入網頁中。
<%
' Do not cache this page.
Response.CacheControl = "no-cache"
' Define the name of the users table.
Const USERS_TABLE = "tblUsers"
' Define the path to the logon page.
Const LOGON_PAGE = "/logon/logon.asp"
' Define the path to the logon database.
Const MDB_URL = "/logon/_private/logon.mdb"
' Check to see whether you have a current user name.
If Len(Session("UID")) = 0 Then
' Are you currently on the logon page?
If LCase(LOGON_PAGE) <> LCase(Request.ServerVariables("URL")) Then
' If not, set a session variable for the page that made the request...
Session("REFERRER") = Request.ServerVariables("URL")
' ...and redirect to the logon page.
Response.Redirect LOGON_PAGE
End If
End If
' This function checks for a username/password combination.
Function ComparePassword(UID,PWD)
' Define your variables.
Dim strSQL, objCN, objRS
' Set up your SQL string.
strSQL = "SELECT * FROM " & USERS_TABLE & _
" WHERE (UID='" & ParseText(UID) & _
"' AND PWD='" & ParseText(PWD) & "');"
' Create a database connection object.
Set objCN = Server.CreateObject("ADODB.Connection")
' Open the database connection object.
objCN.Open "driver={Microsoft Access Driver (*.mdb)}; dbq=" & _
Server.MapPath(MDB_URL) & "; uid=admin; pwd="
' Run the database query.
Set objRS = objCN.Execute(strSQL)
' Set the status to true/false for the database lookup.
ComparePassword = Not(objRS.EOF)
' Close your database objects.
Set objRS = Nothing
Set objCN = Nothing
End Function
' This function restricts text to alpha-numeric data only.
Function ParseText(TXT)
Dim intPos, strText, intText
For intPos = 1 TO Len(TXT)
intText = Asc(Mid(TXT,intPos,1))
If (intText > 47 And intText < 58) Or _
(intText > 64 And intText < 91) Or _
(intText > 96 And intText < 123) Then
strText = strText & Mid(TXT,intPos,1)
End if
Next
ParseText = strText
End Function
%> -
用滑鼠右鍵按一下 [new_page_1.htm] 索引標籤,然後按一下
[儲存]。
將網頁以 logon.inc的名稱儲存在登入網站的 _private 資料夾中。 -
在 [檔案] 功能表上按一下 [關閉],關閉 logon.inc 檔案。
測試登入網站
如果要執行這項操作,請依照下列步驟執行:
-
在 FrontPage 2003 的 [資料夾清單] 窗格中,用滑鼠右鍵按一下
Default.asp,然後按一下
[在瀏覽器中預覽]。
網頁瀏覽器會載入範例首頁,並顯示您並未登入。 -
按一下 [非安全性的網頁] 連結。
網頁載入並顯示您並未登入。按一下 [回到預設值] 連結,返回預設頁面。 -
按一下 [密碼保護網頁] 連結。
logon.asp 網頁載入,而不是密碼保護網頁。 -
在 [使用者名稱] 方塊中輸入
testuser,在 [密碼] 方塊中輸入
password,然後按一下 LOGON。
密碼保護網頁出現,顯示您是以 testuser 名稱登入。按一下 [回到預設值] 連結,返回預設頁面。首頁載入,顯示您是以 testuser 名稱登入。 -
按一下 [非安全性的網頁] 連結。
網頁載入,顯示您是以 testuser 名稱登入。
自訂登入網站
您可以用下列方式,來自訂登入範例網站:
-
新增使用者名稱和密碼:您可以開啟資料庫。如果要執行這項操作,請在 FrontPage 2003 中按兩下資料庫,然後新增使用者到 tblUsers 資料表。
-
以密碼保護其他網頁:如果要以密碼保護網站中另一個網頁,您必須以 ASP 副檔名儲存檔案 (例如,Mypage.asp),然後將下列兩行新增到檔案頂端:
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->第一行指定您所使用的指令碼語言是 Microsoft Visual Basic Scripting Edition (VBScript),第二行則包含稍早所建立的登入 Include 檔案的使用者名稱和密碼功能。
参考
如需有關如何整合動態伺服器網頁 (ASP) 與資料庫的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
299987如何使用資料庫和 ASP 工作階段來執行 ASP 安全性
300382 如何:從 ASP 網頁建立與資料庫的連線:連線字串範例
318287 What you need to use Active Server Pages (ASP) in FrontPage 2002
回到頁首