Создание защищенной паролем веб-страницы с помощью Microsoft Office FrontPage 2003, ASP (Active Server Pages) и базы данных Microsoft Access

Версия данной статьи для Microsoft FrontPage 2002: 321439 .

Аннотация

Эта статья содержит описание процесса создания простого защищенного паролем веб-проекта с помощью FrontPage 2003, ASP (Active Server Pages) и базы данных Microsoft Access.

Внимание!
  • Представленный в статье программный код не является заменой встроенных в FrontPage 2003 функций обеспечения безопасности. Он служит только для обеспечения безопасности пользователей, которые получают доступ к веб-узлу. В этом контексте реализованные в FrontPage 2003 функции безопасности не поддерживают имена пользователей и пароли, которые используются в базах данных Microsoft Access.
  • Введенные учетные данные передаются в Интернете в формате обычного текста. В целях повышения безопасности корпорация Microsoft рекомендует использовать веб-сервер, который поддерживает шифрование SSL (Secure Sockets Layer). Для получения дополнительных сведений обратитесь к администратору веб-узла или поставщику услуг Интернета.
К началу статьи

Использование функций ASP в FrontPage 2003

Для использования функций ASP в FrontPage 2003 необходимо наличие доступа к веб-серверу или веб-узлу на диске, который поддерживает технологию ASP.


К началу статьи

Создание веб-узла с помощью FrontPage 2003

Примечание. В рассмотренном примере дочерний веб-узел создается в корневом каталоге основного узла и называется «logon». В случае использования другого имени или места расположения веб-узла необходимо соответствующим образом откорректировать описанные в этой статье действия.

Для создания веб-узла средствами FrontPage 2003 необходимо выполнить следующие действия.
  1. Запустите FrontPage 2003.
  2. В меню Файл выберите команду Создать.
  3. На панели задач нажмите кнопку Другие шаблоны веб-узлов и выберите Пустой веб-узел.
  4. В поле Параметры в указанном ниже формате введите место хранения нового веб-узла:
    http://имя_сервера/logon
    где имя_сервера — это имя веб-сервера, который поддерживает технологию ASP.
  5. Нажмите кнопку ОК.
В FrontPage 2003 будет открыт пустой веб-узел «logon».К началу статьи

Создание базы данных

С помощью Office Access 2003 необходимо создать базу данных для хранения имен пользователей и паролей.

Примечание. Измените соответствующим образом представленные ниже действия в случае создания базы данных средствами другой программы.

Чтобы создать базу данных, выполните следующие действия.
  1. Запустите Access 2003.
  2. В меню Файл выберите команду Создать.
  3. На панели задач щелкните ссылку Новая база данных.
  4. Введите имя logon.mdb и нажмите кнопку Создать.
  5. На панели Объекты нажмите кнопку Таблицы, а затем — Создать.
  6. Выделите строку Конструктор и нажмите кнопку OK.
  7. В первой строке в столбце Имя поля введите UID.
  8. В столбце Тип данных выберите Текстовый и нажмите на панели инструментов кнопку Ключевое поле (кнопка со значком ключа).
  9. Во второй строке в столбце Имя поля введите PWD, а затем установите значение Текстовый в столбце Тип данных.
  10. В меню Файл выберите команду Сохранить.
  11. В поле Имя таблицы введите tblUsers и нажмите кнопку OK.
  12. В меню Вид выберите команду Режим таблицы.
  13. В столбце UID введите testuser.

    В столбце PWD введите password.
  14. В меню Файл выберите команду Закрыть и выйдите из Access 2003.
К началу статьи

Импорт базы данных

Чтобы импортировать созданную базу данных имен пользователей и паролей в FrontPage 2003, выполните следующие действия.
  1. В FrontPage 2003 (веб-узел «logon» остается открытым) выберите в меню Файл команду Импорт.
  2. Нажмите кнопку Добавить файл, найдите и выделите созданную базу данных logon.mdb.

    Нажмите кнопку Открыть.
  3. Нажмите кнопку Изменить, введите в поле Размещение файла на веб-узле строку _private/logon.mdb и нажмите кнопку OK.

    Примечание. Перед словом «private» в пути к файлу стоит знак подчеркивания (_).
  4. Нажмите кнопку OK, чтобы импортировать файл базы данных.
  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</li>
    <li><a href="nonsecure.asp">Nonsecure Page</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>
    </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='" & UID & "' AND PWD='" & 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
    %>
  5. Правой кнопкой мыши щелкните вкладку new_page_1.htm и выберите команду Сохранить.

    Сохраните страницу под именем logon.inc в корневом каталоге веб-узла.
  6. Чтобы закрыть страницу logon.inc, выберите в меню Файл команду Закрыть.
К началу статьи

Тестирование веб-узла Logon

Выполните следующие действия.
  1. В окне программы FrontPage 2003 на панели Список папок щелкните правой кнопкой мыши файл Default.asp и выберите команду Просмотр в обозревателе.

    Будет загружена домашняя страница и появится сообщение о том, что не были введены учетные данные.
  2. Щелкните ссылку Nonsecure page.

    Страница загрузится и появится сообщение о том, что не были введены учетные данные. Нажмите ссылку Back to default, чтобы вернуться на домашнюю страницу.
  3. Щелкните ссылку Password-Protected page.


    Вместо защищенной паролем страницы загрузится файл logon.asp.
  4. В поле User Name введите testuser, в поле Passwordpassword и нажмите кнопку LOGON.


    Будет отображена защищенная паролем страница и появится сообщение о выполненном с помощью учетной записи testuser входе. Нажмите ссылку Back to default, чтобы вернуться на домашнюю страницу. Будет отображена домашняя страница и появится сообщение о выполненном с помощью учетной записи testuser входе.
  5. Щелкните ссылку Nonsecure page.

    Будет отображена незащищенная страница и появится сообщение о выполненном с помощью учетной записи testuser входе.
К началу статьи

Настройка веб-узла Logon

Возможны следующие варианты изменения конфигурации веб-узла Logon.
  • Добавление имен пользователей и паролей (можно открыть базу данных). Два раза щелкните название базы данных в FrontPage 2003 и добавьте пользователей в таблицу tblUsers.
  • Защита паролем других веб-страниц. Чтобы защитить паролем страницу веб-узла, необходимо сохранить файл с расширением ASP (например, моя_страница.asp) и добавить в верхнюю часть файла следующие строки:
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    В первой строке указан Microsoft Visual Basic Scripting Edition (VBScript) в качестве языка написания сценария, а вторая используется для подключения функций проверки учетных данных из созданного ранее заголовочного файла.
К началу статьи

Ссылки

Для получения дополнительных сведений об использовании страниц ASP с базами данных обратитесь к следующим статьям Microsoft Knowledge Base.
299987 HOW TO: Use Database and ASP Sessions to Implement ASP Security

300382 HOW TO: Create a Database Connection from an ASP Page in IIS

318287 FP2002: What You Need to Use Active Server Pages (ASP) in FrontPage 2002

Свойства

Номер статьи: 825498 — последний просмотр: 2 февр. 2004 г. — редакция: 1

Отзывы и предложения