如何使用 FrontPage 2003、Active Server Pages 和 Access 数据库创建密码保护网页

文章翻译 文章翻译
文章编号: 825498 - 查看本文应用于的产品
有关本文的 Microsoft FrontPage 2002 版本,请参见 321439
有关本文的 Microsoft FrontPage 2000 版本,请参见 321503
展开全部 | 关闭全部

本文内容

概要

本文分步介绍了如何使用 Microsoft FrontPage 2003、Active Server Pages (ASP) 和 Microsoft Access 数据库创建简单的密码保护网页解决方案。

重要说明
  • 本文中的示例代码并不能替代 FrontPage 2003 内置安全功能。这些示例仅为要浏览您的网站的用户提供一种简单的安全机制。这样,FrontPage 2003 安全功能并未集成那些添加到 Microsoft Access 数据库的用户名和密码。
  • 所键入的用户名和密码通过 Internet 以明文形式传输。要获得更高的安全性,Microsoft 建议您使用可利用安全套接字层 (SSL) 加密功能的 Web 服务器。有关更多信息,请联系您的网站管理员或 Internet 服务提供商 (ISP)。

使用 FrontPage 2003 中的 ASP 功能

您必须能够访问一个支持 ASP 的 Web 服务器或基于磁盘的 Web,才能使用 FrontPage 2003 中的 ASP 功能。

在 FrontPage 2003 中创建新的网站

注意:这些示例信息假定您将您的网站命名为 logon,并且您是将它作为您的网站的根下的子网站创建的。如果您使用的名称不是 logon,或者您是在另一个位置创建了网站,则必须相应地修改本文各部分介绍的步骤。

要在 FrontPage 2003 中创建新的网站,请按照下列步骤操作:
  1. 启动 FrontPage 2003。
  2. 在“文件”菜单上,单击“新建”。
  3. 在任务窗格中,单击“其他网站模板”,然后单击“空白网站”。
  4. 在“选项”下,以下面的格式键入您要存入新网站的位置
    http://servername/logon
    其中,servername 是支持 ASP 的 Web 服务器的名称。
  5. 单击“确定”。
FrontPage 2003 中将打开名为“logon”的新的空白网站。

创建数据库

可使用数据库程序(例如 Microsoft Office Access 2003)创建存储用户名和密码的数据库。

注意:如果您使用 Access 2003 以外的程序创建该数据库,请相应地修改这些步骤。

要创建一个数据库,请按照下列步骤操作:
  1. 启动 Access 2003。
  2. 在“文件”菜单上,单击“新建”。
  3. 在任务窗格中,单击“空数据库”。
  4. 键入 logon.mdb 作为文件名,然后单击“创建”。
  5. 在“对象”窗格中,单击“表”,然后单击“新建”。
  6. 单击“设计视图”,然后单击“确定”。
  7. 在“字段名”列的第一行中,键入 UID
  8. 在相应的“数据类型”列,单击“文本”,然后在工具栏(显示为钥匙符号)上单击“主键”按钮。
  9. 在“字段名”列的第二行中,键入 PWD,然后在“数据类型”列的第二行中单击“文本”。
  10. 在“文件”菜单上,单击“保存”。
  11. 在“表名称”框中,键入 tblUsers,然后单击“确定”。
  12. 在“查看”菜单上,单击“数据表视图”。
  13. 在“UID”列中,键入 testuser

    在“PWD”列中,键入 password
  14. 在“文件”菜单上单击“关闭”,然后退出 Access 2003。
注意:出于安全方面的原因,密码只能为大写字母、小写字母和数字的组合。

导入数据库

将您创建的用户名和密码数据库导入到 FrontPage 2003 中。为此,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,在您的登录网站处于打开状态时,单击“文件”菜单上的“导入”。
  2. 单击“添加文件”,找到并单击您创建的“logon.mdb”文件。

    单击“打开”。
  3. 单击“修改”,在“文件在网站中的位置”框中键入 _private/logon.mdb,然后单击“确定”。

    注意:在文件路径中的“private”之前有一个下划线 (_) 字符。
  4. 单击“确定”以导入该数据库文件。
  5. 如果系统提示您为此导入文件创建一个数据库连接,请单击“否”。

创建 ASP 页

您必须创建几个文件供此示例使用。首先,为您的网站创建一个主页,为进行测试创建一个“非安全”页和一个密码保护页,然后创建登录网页和登录包含文件。

创建主页

该主页用作您的站点的默认页,它包含一些指向您创建的非安全页和密码保护页的链接。要创建一个主页,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,单击“新建普通网页”按钮。
  2. 在文档窗口的页脚区,单击“代码”以显示代码视图。
  3. 选中网页中的全部 HTML 代码,然后删除它们。
  4. 将下面的 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>
    
  5. 右键单击“new_page_1.htm”选项卡,然后单击“保存”。

    使用 default.asp 文件名将该页保存到登录网站的根文件夹中。
  6. 在“文件”菜单上,单击“关闭”以关闭 default.asp 网页。

创建非安全页

创建一个所有人都能查看的典型的 ASP 页。要创建一个非安全页,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,单击“新建普通网页”按钮。
  2. 在文档窗口的页脚区,单击“代码”以显示代码视图。
  3. 选中网页中的全部 HTML 代码,然后删除它们。
  4. 将下面的 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>
    
  5. 右键单击“new_page_1.htm”选项卡,然后单击“保存”。

    使用 nonsecure.asp 文件名将该页保存到登录网站的根文件夹中。
  6. 在“文件”菜单上,单击“关闭”以关闭 nonsecure.asp 网页。

创建密码保护页

本步中的页面与您先前创建的非安全网页类似,只是您必须在接近页首处添加下面的代码行:
<!--#include virtual="/logon/_private/logon.inc"-->
在向 ASP 网页添加该行代码后,该页即获得了由您创建的 logon.inc 文件提供的密码保护。要创建一个密码保护网页,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,单击“新建普通网页”按钮。
  2. 在文档窗口的页脚区,单击“代码”以显示代码视图。
  3. 选中网页中的全部 HTML 代码,然后删除它们。
  4. 将下面的 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>
    
  5. 右键单击“new_page_1.htm”选项卡,然后单击“保存”。

    使用 passwordprotect.asp 文件名将该页保存到登录网站的根文件夹中。
  6. 在“文件”菜单上,单击“关闭”以关闭 passwordprotect.asp 网页。

创建登录页

创建一个类似于典型 Windows 登录对话框的登录页。尝试访问密码保护网页的用户将转到此页来键入用户名和密码。要创建一个登录页,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,单击“新建普通网页”按钮。
  2. 在文档窗口的页脚区,单击“代码”以显示代码视图。
  3. 选中网页中的全部 HTML 代码,然后删除它们。
  4. 将下面的 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">&#xa0;</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>&#xa0;</td>
        <td colspan="2" align="left">Please type your user name and password.</td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">Site</td>
        <td align="left"><%=Request.ServerVariables("SERVER_NAME")%> &#xa0;</td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">User Name</td>
        <td align="left"><input name="UID" type="text" size="20"></td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td align="left">Password</td>
        <td align="left"><input name="PWD" type="password" size="20"></td>
        <td>&#xa0;</td>
      </tr>
      <tr>
        <td>&#xa0;</td>
        <td colspan="2" align="center"><input type="submit" value="LOGON"></td>
        <td>&#xa0;</td>
      </tr>
    </table>
    </form>
    </center></div>
    </body>
    </html>
    
  5. 右键单击“new_page_1.htm”选项卡,然后单击“保存”。

    使用 logon.asp 文件名将该页保存到登录网站的根文件夹中。
  6. 在“文件”菜单上,单击“关闭”以关闭 logon.asp 网页。

创建登录包含文件

此包含文件提供用户名和密码功能,并且密码保护网页和登录网页都使用此文件。要创建登录包含文件,请按照下列步骤操作:
  1. 在 FrontPage 2003 中,单击“新建普通网页”按钮。
  2. 在文档窗口的页脚区,单击“代码”以显示代码视图。
  3. 选中网页中的全部 HTML 代码,然后删除它们。
  4. 将下面的 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
    %>
  5. 右键单击“new_page_1.htm”选项卡,然后单击“保存”。

    使用文件名 logon.inc 将该页保存到登录网站的 _private 文件夹中。
  6. 在“文件”菜单上,单击“关闭”以关闭 logon.inc 文件。

测试登录网站

为此,请按照下列步骤操作:
  1. 在 FrontPage 2003 中的“文件夹列表”窗格中,右键单击“Default.asp”,然后单击“在浏览器中预览”。

    Web 浏览器会加载示例主页并指出您尚未登录。
  2. 单击“非安全页”链接。

    此时该页将加载并将显示您尚未登录。单击“返回默认页”链接以返回默认页。
  3. 单击“密码保护页”链接。

    此时加载 logon.asp 页而非密码保护页。
  4. 在“用户名”框中键入 testuser,在“密码”框中键入 password,然后单击“登录”。

    此时出现密码保护页,此页显示您已经以 testuser 的身份登录。单击“返回默认页”链接以返回默认页。此时该页将加载并将显示您已经以 testuser 的身份登录。
  5. 单击“非安全页”链接。

    此时该页将加载并将显示您已经以 testuser 的身份登录。

自定义登录网站

您可以用下列方法自定义登录示例网站:
  • 添加用户名和密码:您可以打开数据库。为此,请双击 FrontPage 2003 中的数据库,然后向 tblUsers 表中添加用户。
  • 用密码保护其他网页:要在您的网站中使用密码保护其他网页的安全,您必须使用 ASP 文件名扩展名保存网页文件(例如,Mypage.asp),然后将以下两行添加到文件的最顶部:
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    
    第一行指定您要使用 Microsoft Visual Basic Scripting Edition (VBScript) 作为脚本语言,第二行包含您先前创建的登录包含文件中的用户名和密码功能。

参考

有关如何将 Active Server Pages (ASP) 与数据库进行集成的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
299987 如何使用数据库和 ASP 会话实现 ASP 安全
300382 如何在 IIS 中从 ASP 页创建数据库连接
318287 在 FrontPage 2002 中使用 Active Server Pages (ASP) 所需的项目

属性

文章编号: 825498 - 最后修改: 2006年4月20日 - 修订: 3.1
这篇文章中的信息适用于:
  • Microsoft Office FrontPage 2003
关键字:?
kbhowtomaster kbdatabase kbasp KB825498
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com