この資料では、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"> </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> </td>
<td colspan="2" align="left">Please type your user name and password.</td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Site</td>
<td align="left"><%=Request.ServerVariables("SERVER_NAME")%>  </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">User Name</td>
<td align="left"><input name="UID" type="text" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td align="left">Password</td>
<td align="left"><input name="PWD" type="password" size="20"></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td colspan="2" align="center"><input type="submit" value="LOGON"></td>
<td> </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) を基に作成したものです。
この資料に含まれているサンプル コード/プログラムは英語版を前提に書かれたものをありのままに記述しており、日本語環境での動作は確認されておりません。
先頭へ戻る