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

文書翻訳 文書翻訳
文書番号: 825498 - 対象製品
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年1月24日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Office FrontPage 2003
キーワード:?
kbhowtomaster kbdatabase kbasp KB825498
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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