Help and Support

[HOW TO] FrontPage 2002 でユーザー名とパスワード用にデータベースを使用する方法

文書番号:321439
最終更新日:2006年12月18日
リビジョン:1.1
目次

概要

この資料では、Microsoft FrontPage 2002、Active Server Pages (ASP)、および Microsoft Access データベースを使用した、シンプルなファイル セキュリティ ソリューションを作成する方法について順をおって説明します。

注意事項

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

先頭へ戻る

手順 1 : FrontPage 2002 で ASP 機能の使用を準備する

FrontPage 2002 で ASP 機能を使用する前に、次の「サポート技術資料」(Microsoft Knowledge Base) に記載されているコンポーネントをインストールする必要があります。
318287 (http://support.microsoft.com/kb/318287/EN-US/) FP: What You Need to Use Active Server Pages (ASP) in FrontPage 2002

先頭へ戻る

手順 2 : FrontPage 2002 で新しい Web を作成する

: このサンプル コードを正常に機能させるためには、Web の名前を LOGON とし、Web サイトのルートのサブ Web とする必要があります。
1. [ファイル] メニューの [新規作成] をポイントし、[ページまたは Web] をクリックします。
2. 作業ウィンドウ内の [Web サイト テンプレート] をクリックします。
3. テンプレートの一覧から [空の Web] をクリックします。
4. 次の構文を使用して、サーバー上の Web の場所を指定します。
http://サーバー/logon/
ここで、サーバー は、ASP の利用が可能な Web サーバーの名前です。
5. [OK] をクリックします。

先頭へ戻る

手順 3 : Microsoft Access を使用してデータベースを作成する

1. Microsoft Access を起動します。
2. [ファイル] メニューの [新規作成] をクリックします。
3. 選択項目の一覧から [空のデータベース] をクリックします。
4. ファイルに logon.mdb と名前と付けて、デスクトップに保存します。
5. 左側のウィンドウで [テーブル] が選択されていることを確認してから、[新規作成] をクリックします。
6. [新しいテーブル] ダイアログ ボックスの一覧から [デザイン ビュー] をクリックして [OK] をクリックします。
7. フィールドを 2 つ作成します。
a. [フィールド名] に UID と入力します。[データ型] で [テキスト型] をクリックして、[編集] メニューの [主キー] をクリックします。
b. [フィールド名] に PWD と入力します。[データ型] で [テキスト型] をクリックします。
8. [ファイル] メニューの [上書き保存] をクリックします。テーブルに tblUsers という名前を付け、[OK] をクリックします。
9. [表示] メニューの [データシート ビュー] をクリックします。
10.UID 列に、testuser と入力します。PWD 列に password と入力します。
11. [ファイル] メニューの [閉じる] をクリックして、テーブルを閉じます。
12. Microsoft Access を終了します。

先頭へ戻る

手順 4 : Microsoft Access データベースをインポートする

1. [ファイル] メニューの [インポート] をクリックします。
2. [ファイルの追加] をクリックします。
3. [ファイルの場所] ボックスで [デスクトップ] をクリックします。
4.手順 3で作成した logon.mdb ファイルをクリックして、 [開く] をクリックします。
5. [変更] をクリックします。
6. URL を _private/logon.mdb に変更して、[OK] をクリックします。
7. [OK] をクリックしてファイルをインポートします。
8. データベース接続の追加を確認するメッセージが表示されたら、[いいえ] をクリックします。

先頭へ戻る

手順 5 : ASP ページを作成する

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

手順 5a : ホーム ページを作成する

このページはサイトのデフォルト ページとして機能し、この後で作成するセキュリティで保護されていないページセキュリティで保護されたページへのリンクが含まれます。
1.FrontPage ツール バーで、[新しいページ] をクリックします。
2. HTML の表示に切り替えて、既存の HTML コードをすべて削除します。
3. ページに以下のコードを入力するか貼り付けます。
<% @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="secure.asp">Secure Page</li>
<li><a href="unsecure.asp">Unsecure Page</li>
</ul>
</body>
</html>
4. このページを default.asp という名前で Web サイトのルート フォルダ内に保存します。
5. [ファイル] メニューの [閉じる] をクリックして、ページを閉じます。

手順 5b : セキュリティで保護されていないページを作成する

このページは、だれでも参照可能な基本的な ASP ページです。
1.FrontPage ツール バーで、[新しいページ] をクリックします。
2. HTML の表示に切り替えて、既存の HTML コードをすべて削除します。
3. ページに以下のコードを入力するか貼り付けます。
<% @language="vbscript" %>
<html>
<head><title>Unsecure Page</title></head>
<body>
<h3>Unsecure 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>
4. このページを unsecure.asp という名前で Web サイトのルート フォルダ内に保存します。
5. [ファイル] メニューの [閉じる] をクリックして、ページを閉じます。

手順 5c : セキュリティで保護されたページを作成する

この手順のページは、 次のコード行をページの初めに追加することを除き、手順 5bで作成したセキュリティで保護されていないページと同じです。
<!--#include virtual="/logon/_private/logon.inc"-->
このコード行を ASP Web ページに追加すると、すべてのページが "セキュリティで保護された" Web ページになります。
1.FrontPage ツール バーで、[新しいページ] をクリックします。
2. HTML の表示に切り替えて、既存の HTML コードをすべて削除します。
3. ページに以下のコードを入力するか貼り付けます。
<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
<html>
<head><title>Secure Page</title></head>
<body>
<h3>Secure 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>
4. このページを secure.asp という名前で Web サイトのルート フォルダ内に保存します。
5. [ファイル] メニューの [閉じる] をクリックして、ページを閉じます。

手順 5d : ログオン ページを作成する

ログオン ページは、標準の Windows ログオン ダイアログ ボックスのように設計されています。 セキュリティで保護されたページにアクセスしようとするユーザーには、 ユーザー名とパスワードを入力するページが送られます。
1.FrontPage ツール バーで、[新しいページ] をクリックします。
2. HTML の表示に切り替えて、既存の HTML コードをすべて削除します。
3. ページに以下のコードを入力するか貼り付けます。
<% @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>
4. このページを logon.asp という名前で Web サイトのルート フォルダ内に保存します。
5. [ファイル] メニューの [閉じる] をクリックして、ページを閉じます。

手順 5e : ログオン インクルード ファイルを作成する

このインクルード ファイルは、ユーザー名とパスワード機能を提供し、セキュリティで保護されたページログオン ページの両方で使用されます。
1.FrontPage ツール バーで、[新しいページ] をクリックします。
2. HTML の表示に切り替えて、既存の HTML コードをすべて削除します。
3. ページに以下のコードを入力するか貼り付けます。
<%
  ' 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
%>
4. このページを logon.inc という名前で Web の _private フォルダ内に保存します。
5. [ファイル] メニューの [閉じる] をクリックして、ページを閉じます。

先頭へ戻る

手順 6 : Logon Web をテストする

1. FrontPage の [フォルダ一覧] で、default.asp をクリックします。FrontPage ツール バーで、[ブラウザでプレレビュー] をクリックします。
2. ブラウザによりサンプル ホーム ページが読み込まれ、ログオンしていないことが表示されます。
3. セキュリティで保護されていないページへのリンクをクリックします。ページが読み込まれ、ログオンしていないことが表示されます。リンクをクリックしてデフォルトのページに戻ります。
4. セキュリティで保護されているページへのリンクをクリックします。セキュリティで保護されているページの代わりにログオン ページが読み込まれます。
5. 名前に testuser と入力し、パスワードに password と入力して、LOGON をクリックします。
6. セキュリティで保護されたページが表示され、testuser としてログオンしていることが表示されます。リンクをクリックしてデフォルトのページに戻ります。
7. サンプル ホーム ページが読み込まれ、testuser としてログオンしていることが表示されます
8. セキュリティで保護されていないページへのリンクをクリックします。ページが読み込まれ、testuser としてログオンしていることが表示されます。

先頭へ戻る

ログオン サンプルをカスタマイズする

以下の方法で、ログオン サンプルをカスタマイズすることができます。
? ユーザー名とパスワードを追加する : データベースをダブルクリックすることにより FrontPage でデータベースを開き、tblUsers テーブルにユーザーを追加することができます。
? 他の Web ページをセキュリティで保護する : Web 内の他の Web ページをセキュリティで保護するには、ファイル名拡張子 ASP (たとえば、mypage.asp) を付けてファイルを保存してから、次の 2 行をファイルの先頭に追加する必要があります。

<% @language="vbscript" %>
<!--#include virtual="/logon/_private/logon.inc"-->
最初の行で、スクリプト言語として Microsoft Visual Basic Scripting Edition (VBScript) の使用を指定し、2 行目で、前の手順で作成した ログオン インクルード ファイルのユーザー名とパスワード機能を組み込みます。

先頭へ戻る

関連情報

ASP をデータベースおよびセキュリティと統合する方法の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
299987 (http://support.microsoft.com/kb/299987/EN-US/) HOW TO: Use Database and ASP Sessions to Implement ASP Security

先頭へ戻る

299987 (http://support.microsoft.com/kb/299987/JA/) [HOW TO] データベースと ASP セッションを使って ASP セキュリティを実装する

先頭へ戻る

300382 (http://support.microsoft.com/kb/300382/EN-US/) HOW TO: Create a Database Connection from an ASP Page in IIS

先頭へ戻る

300382 (http://support.microsoft.com/kb/300382/JA/) [HOW TO] ASP ページからデータベース接続を作成する : 接続文字列のサンプル

先頭へ戻る

先頭へ戻る

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 321439 (http://support.microsoft.com/kb/321439/EN-US/) (最終更新日 2002-10-26) を基に作成したものです。

この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。

先頭へ戻る


この資料は以下の製品について記述したものです。
?Microsoft FrontPage 2002 Standard Edition

先頭へ戻る

キーワード:?
kbhowto kbhowtomaster KB321439

先頭へ戻る

"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

サポート技術情報の翻訳

 

Related Support Centers

Other Support Options

  • Contact Microsoft
    Phone Numbers, Support Options and Pricing, Online Help, and more.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.