FrontPage 2003、Active Server Pages、および Access データベースを使用して、パスワードで保護された Web ページを作成する方法

Microsoft FrontPage 2002 については、次の資料を参照してください。321439
Microsoft FrontPage 2000 については、次の資料を参照してください。321503

概要

この資料では、FrontPage 2003、Active Server Pages (ASP)、および Microsoft Access データベースを使用して、パスワードで保護された単純な Web ページ ソリューションを作成する方法について手順を追って説明します。


重要
  • この資料のサンプル コードは、FrontPage 2003 に組み込まれているセキュリティ機能の代わりとなるようには設計されていません。このサンプルは、Web サイトを参照するユーザーに対してのみ単純なセキュリティ メカニズムを提供するように設計されています。このため、Microsoft Access データベースに追加されるユーザー名とパスワードを、FrontPage 2003 のセキュリティに組み込むことはできません。
  • 入力されたユーザー名とパスワードは、インターネット上をテキスト形式で転送されます。セキュリティを強化するために、SSL (Secure Sockets Layer) 暗号化を使用できる Web サーバーを使用することを推奨します。詳細については、Web サイト管理者またはインターネット サービス プロバイダ (ISP) にお問い合わせください。
先頭に戻る

FrontPage 2003 の ASP 機能を使用する

FrontPage 2003 で ASP 機能を使用する前に、ASP をサポートする Web サーバーまたはディスクベースの Web にアクセスできるようにする必要があります。


先頭に戻る

FrontPage 2003 で Web サイトを新規作成する

: 以下の例では、Web サイトに logon という名前を付け、Web サイトのルートから外れたサブ Web として作成する場合を想定しています。logon 以外の名前を使用する場合や、これ以外の場所に Web サイトを作成する場合は、それに応じてこの資料の手順を変更する必要があります。


FrontPage 2003 で Web サイトを新規作成するには、以下の手順を実行します。
  1. FrontPage 2003 を起動します。
  2. [ファイル] メニューの [新規作成] をクリックします。
  3. 作業ウィンドウで、[その他の Web サイト テンプレート] をクリックし、[空の Web サイト] をクリックします。
  4. [オプション] の下に、新しい Web サイトを保存する場所を以下の形式で入力します。
    http://servername/logon
    servername は、ASP を利用可能な Web サーバーの名前です。
  5. [OK] をクリックします。
FrontPage 2003 で、logon という名前の新しい空の Web サイトが開きます。


先頭に戻る

データベースを作成する

Microsoft Office Access 2003 などのデータベース プログラムを使用して、ユーザー名とパスワードを保存するデータベースを作成します。


: Access 2003 以外のプログラムを使用してデータベースを作成する場合は、それに応じて以下の手順を変更してください。


データベースを作成するには、以下の手順を実行します。
  1. Access 2003 を起動します。
  2. [ファイル] メニューの [新規作成] をクリックします。
  3. 作業ウィンドウの [空のデータベース] をクリックします。
  4. ファイル名として logon.mdb と入力し、[作成] をクリックします。
  5. [オブジェクト] ウィンドウで [テーブル] をクリックし、[新規作成] をクリックします。
  6. [デザイン ビュー] をクリックし、[OK] をクリックします。
  7. [フィールド名] 列の最初の行に、UID と入力します。
  8. 対応する [データ型] 列の [テキスト] をクリックし、ツール バーの [主キー] ボタン (鍵の記号が表示されています) をクリックします。
  9. [フィールド名] 列の 2 行目に PWD と入力し、[データ型] 列の 2 行目の [テキスト] をクリックします。
  10. [ファイル] メニューの [上書き保存] をクリックします。
  11. [テーブル名] ボックスに tblUsers と入力し、[OK] をクリックします。
  12. [表示] メニューの [データシート ビュー] をクリックします。
  13. [UID] 列に testuser と入力します。


    [PWD] 列に password と入力します。
  14. [ファイル] メニューの [閉じる] をクリックし、Access 2003 を終了します。
: セキュリティ上の理由により、使用できるのは大文字、小文字、および数字を含むパスワードのみです。


先頭に戻る

データベースをインポートする

作成したユーザー名とパスワードのデータベースを FrontPage 2003 にインポートします。これを行うには、以下の手順を実行します。
  1. ログオン Web サイトが開いている FrontPage 2003 で、[ファイル] メニューの [インポート] をクリックします。
  2. [ファイルの追加] をクリックし、作成した [logon.mdb] ファイルを探してクリックします。


    [開く] をクリックします。
  3. [変更] をクリックし、[Web 内のファイルのパス] ボックスに _private/logon.mdb と入力し、[OK] をクリックします。


    : ファイルのパスでは、"private" の前にアンダースコア文字 (_) があります。
  4. [OK] をクリックして、データベース ファイルをインポートします。
  5. このインポートされたファイルに対してデータベース接続を作成するかどうかを確認するメッセージが表示されたら、[いいえ] をクリックします。
先頭に戻る

ASP ページを作成する

このサンプルを使用するには、いくつかのファイルを作成する必要があります。最初に、Web サイトのホーム ページ、テスト用の "セキュリティで保護されない" ページ、およびパスワードで保護されたページを作成し、次に、ログオン Web ページとログオン インクルード ファイルを作成します。

ホーム ページを作成する

このページは、サイトのデフォルトのページとして機能するもので、これから作成する、セキュリティで保護されないページとパスワードで保護された Web ページへのリンクを記載します。ホーム ページを作成するには、以下の手順を実行します。
  1. FrontPage 2003 のツール バーで、[新しい標準ページの作成] をクリックします。
  2. ドキュメント ウィンドウのフッター領域にある [コード] をクリックして、コード ビューを表示します。
  3. Web ページ内のすべての HTML コードを選択し、削除します。
  4. Web ページに以下の 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] タブを右クリックし、[上書き保存] をクリックします。


    このページをログオン Web サイトのルート フォルダに default.asp という名前で保存します。
  6. [ファイル] メニューの [閉じる] をクリックして、default.asp Web ページを閉じます。
先頭に戻る

セキュリティで保護されないページを作成する

だれでも参照できる通常の ASP ページを作成します。セキュリティで保護されないページを作成するには、以下の手順を実行します。
  1. FrontPage 2003 のツール バーで、[新しい標準ページの作成] をクリックします。
  2. ドキュメント ウィンドウのフッター領域にある [コード] をクリックして、コード ビューを表示します。
  3. Web ページ内のすべての HTML コードを選択し、削除します。
  4. Web ページに以下の 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] タブを右クリックし、[上書き保存] をクリックします。


    このページをログオン Web サイトのルート フォルダに nonsecure.asp という名前で保存します。
  6. [ファイル] メニューの [閉じる] をクリックして、nonsecure.asp Web ページを閉じます。
先頭に戻る

パスワードで保護されたページを作成する

このページを作成する手順は、前に作成したセキュリティで保護されない Web ページの作成手順と同じです。ただし、ページの先頭近くに次のコード行を追加する必要があります。
<!--#include virtual="/logon/_private/logon.inc"-->
このコード行を ASP Web ページに追加すると、作成した logon.inc ファイルによってパスワードで保護されたページとなります。パスワードで保護された Web ページを作成するには、以下の手順を実行します。
  1. FrontPage 2003 のツール バーで、[新しい標準ページの作成] をクリックします。
  2. ドキュメント ウィンドウのフッター領域にある [コード] をクリックして、コード ビューを表示します。
  3. Web ページ内のすべての HTML コードを選択し、削除します。
  4. Web ページに以下の 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] タブを右クリックし、[上書き保存] をクリックします。


    このページをログオン Web サイトのルート フォルダに passwordprotect.asp という名前で保存します。
  6. [ファイル] メニューの [閉じる] をクリックして、passwordprotect.asp Web ページを閉じます。
先頭に戻る

ログオン ページを作成する

一般的な Windows ログオン ダイアログ ボックスに似せた、ログオン ページを作成します。ユーザーが、パスワードで保護された Web ページにアクセスすると、そのユーザーにこのページが表示され、ユーザー名とパスワードの入力が求められます。ログオン ページを作成するには、以下の手順を実行します。
  1. FrontPage 2003 のツール バーで、[新しい標準ページの作成] をクリックします。
  2. ドキュメント ウィンドウのフッター領域にある [コード] をクリックして、コード ビューを表示します。
  3. Web ページ内のすべての HTML コードを選択し、削除します。
  4. Web ページに以下の 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] タブを右クリックし、[上書き保存] をクリックします。


    このページをログオン Web サイトのルート フォルダに logon.asp という名前で保存します。
  6. [ファイル] メニューの [閉じる] をクリックして、logon.asp Web ページを閉じます。
先頭に戻る

ログオン インクルード ファイルを作成する

このインクルード ファイルは、ユーザー名とパスワードの組み合わせを提供するもので、パスワードで保護された Web ページとログオン Web ページの両方で使用されます。ログオン インクルード ファイルを作成するには、以下の手順を実行します。
  1. FrontPage 2003 のツール バーで、[新しい標準ページの作成] をクリックします。
  2. ドキュメント ウィンドウのフッター領域にある [コード] をクリックして、コード ビューを表示します。
  3. Web ページ内のすべての HTML コードを選択し、削除します。
  4. Web ページに以下の 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] タブを右クリックし、[上書き保存] をクリックします。


    このページを、ログオン Web サイトの _private フォルダに logon.inc という名前で保存します。
  6. [ファイル] メニューの [閉じる] をクリックして、logon.inc ファイルを閉じます。
先頭に戻る

ログオン Web サイトをテストする

この作業を行うには、以下の手順を実行します。
  1. FrontPage 2003 の [フォルダ一覧] ウィンドウで、[Default.asp] を右クリックし、[ブラウザでプレビュー] をクリックします。


    Web ブラウザにサンプルのホーム ページが読み込まれ、ログオンしていないことを示すメッセージが表示されます。
  2. [Nonsecure page] リンクをクリックします。


    ページが読み込まれ、ログオンしていないことを示すメッセージが表示されます。[Back to default] リンクをクリックして、default ページに戻ります。
  3. [Password-Protected page] リンクをクリックします。


    パスワードで保護されたページではなく、logon.asp ページが読み込まれます。
  4. [ユーザー名] ボックスに testuser と入力し、[パスワード] ボックスに password と入力し、[ログオン] をクリックします。


    パスワードで保護されたページが表示され、testuser としてログオンしたことが表示されます。[Back to default] リンクをクリックして、default ページに戻ります。ホーム ページが読み込まれ、testuser としてログオンしたことが表示されます。
  5. [Nonsecure page] リンクをクリックします。


    ページが読み込まれ、testuser としてログオンしたことが表示されます。
先頭に戻る

ログオン Web サイトをカスタマイズする

ログオン Web サイトのサンプルは、以下のようにカスタマイズできます。
  • データベースを開いてユーザー名とパスワードを追加します。これを行うには、FrontPage 2003 でデータベースをダブルクリックし、ユーザーを tblUsers テーブルに追加します。
  • 他の Web ページをパスワードで保護します。Web サイトの別の Web ページをパスワードで保護するには、ファイルを Mypage.asp のように asp というファイル名拡張子を付けて保存します。次に、ファイルの先頭に以下の 2 行を追加します。
    <% @language="vbscript" %>
    <!--#include virtual="/logon/_private/logon.inc"-->
    1 行目は、スクリプト言語として Microsoft Visual Basic Scripting Edition (VBScript) を使用していることを示し、2 行目は、前に作成したログオン インクルード ファイルからユーザー名とパスワードの組み合わせをインクルードすることを示します。
先頭に戻る

関連情報

Active Server Pages (ASP) をデータベースと統合する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。

299987 データベースと ASP セッションを使用して ASP セキュリティを実装する方法
300382 IIS で ASP ページからデータベース接続を作成する方法
318287 FrontPage 2002 での Active Server Pages (ASP) 使用の要件
先頭に戻る
プロパティ

文書番号:825498 - 最終更新日: 2006/01/24 - リビジョン: 1

フィードバック