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

概要

この資料では、Microsoft Expression Web、Active Server Pages (ASP)、および Microsoft Access データベースを使用してパスワード保護を提供する単純な Web ページ ソリューションを作成する方法について説明します。
  • Expression Web の組み込みのセキュリティ機能を置き換えるには、この資料のサンプル コードは設計されていません。サンプルは、Web サイトを参照するユーザーに対してのみ単純なセキュリティ メカニズムを提供するよう設計されています。したがって、Expression Web のセキュリティは、ユーザー名と、Access データベースに追加されているパスワードは統合されません。
  • ユーザー名とパスワードが入力されているが、テキスト形式でインターネット経由で送信されます。セキュリティを向上させるためには、Secure Sockets Layer (SSL) 暗号化を使用する Web サーバーを使用することをお勧めします。詳細については、Web サイトの管理者またはインターネット サービス プロバイダー (ISP) に問い合わせてください。

概要

この資料では、Expression Web、ASP、および Access データベースを使用してパスワードによって保護されている Web ページを作成する方法について説明します。

詳細

Expression Web の ASP 機能を使用します。

Expression Web で ASP 機能を使用する前に、Web サーバー、または ASP をサポートするディスク ・ ベースの Web へのアクセスが必要です。

Expression Web で新しい Web サイトを作成します。

注: 例については、Web サイトのログオン名とするログオン サイトが作成されている Web サイトのルートの下のサブ Web として想定しています。ログオン以外の名前を使用した場合、または別の場所に Web サイトを作成する場合は、この資料で手順を適宜変更する必要があります。

Expression Web で新しい Web サイトを作成するには、次の手順を実行します。
  1. Expression Web を起動します。
  2. [ファイル] メニューの [新規作成] をクリックし、の Web サイトです
  3. 新規作成] ダイアログ ボックスで、[ Web サイト] タブに空の Web サイトをクリックします。
  4. 新しい Web サイトの場所を指定します] ボックスで、次の形式で新しい Web サイトを格納する場所を入力します。

    http://servername/logon
  5. [OK] をクリックします。
ログオンという新しい空の Web サイトは、Expression 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 ] 列には、パスワードを入力します。
  14. [ファイル] メニューで、[閉じる] をクリックし、Access 2003 を終了します。
注: セキュリティ上の理由から、パスワードの大文字、小文字の英字、数字の組み合わせに制限されます。

データベースをインポートします。

Expression Web に、ストアのユーザー名とパスワードを作成したデータベースをインポートします。これを行うには、以下の手順を実行します。
  1. Expression Web をログオン Web サイトを開く、[ファイル] メニューの [インポート] をクリックしてで、[ファイル] をクリックします。
  2. [ファイルの追加] をクリック、作成した [ logon.mdb ] ファイルをクリックし、[開く] をクリックします。
  3. [変更] をクリックして_private/logon.mdb web 内のファイルの場所] テキスト ボックスと入力し、[ OK] をクリックします。

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

ASP ページを作成します。

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

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能について説明することができます。ただし、お客様固有の要件を満たすために、追加機能の提供またはプロシージャの作成のために、これらの例に変更を加えたりはしません。

ホーム ページを作成します。

このページは、サイトの既定のページとして機能します。および保護された Web ページを作成するセキュリティで保護されないページへのリンクが含まれています。ホーム ページを作成するには、次の手順を実行します。
  1. Expression Web では、[ファイル] メニューの [新規] をクリックし、ページ] をクリックします。
  2. 新規作成] ダイアログ ボックスで、[ページ] タブで [ HTML ] をクリックし、[ OK] をクリックします。
  3. ドキュメント ウィンドウのフッター] 領域で [コード] ビューを表示するコードをクリックします。
  4. 選択し、Web ページのすべての HTML コードを削除します。
  5. 入力するか、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>
  6. Default.asp ファイルを、ログオン Web サイトのルート フォルダーでページを保存します。
  7. [ファイル] メニューで、default.asp ファイル Web ページを閉じます閉じるををクリックします。

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

だれでも参照できる通常の ASP ページを作成します。セキュリティで保護されないページを作成するには、以下の手順を実行します。
  1. Expression Web では、[ファイル] メニューの [新規] をクリックし、ページ] をクリックします。
  2. 新規作成] ダイアログ ボックスで、[ページ] タブで [ HTML ] をクリックし、[ OK] をクリックします。
  3. ドキュメント ウィンドウのフッター] 領域で [コード] ビューを表示するコードをクリックします。
  4. 選択し、Web ページのすべての HTML コードを削除します。
  5. 入力するか、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>
  6. ログオン Web サイトのルート フォルダーにnonsecure.aspとしてページを保存します。
  7. [ファイル] メニューには、nonsecure.asp Web ページを閉じます閉じるををクリックします。

プロテクトされたページを作成します。

この手順ではページは、以前は、作成したセキュリティで保護されない Web ページとしてをコード ビューの上部にある次のコードを追加する必要があります。
<!--#include virtual="/logon/_private/logon.inc"-->
コード行を ASP ページに追加するときはそのページになります logon.inc ファイルを作成するを使用してパスワードで保護されています。パスワードによって保護されている Web ページを作成するには、次の手順を実行します。
  1. Expression Web では、[ファイル] メニューの [新規] をクリックし、ページ] をクリックします。
  2. 新規作成] ダイアログ ボックスで、[ページ] タブで [ HTML ] をクリックし、[ OK] をクリックします。
  3. ドキュメント ウィンドウのフッター] 領域で [コード] ビューを表示するコードをクリックします。
  4. 選択し、Web ページのすべての HTML コードを削除します。
  5. 入力するか、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>
  6. ログオン Web サイトのルート フォルダーにpasswordprotect.aspとしてページを保存します。
  7. [ファイル] メニューには、passwordprotect.asp Web ページを閉じます閉じるををクリックします。

ログオン ページを作成します。

ログオンを作成ページが標準の Windows ログオン ダイアログ ボックスに似ています。保護された Web ページにアクセスするユーザーは、ユーザー名とパスワードを入力するのには、このページに送信されます。ログオン ページを作成するには、次の手順を実行します。
  1. Expression Web では、[ファイル] メニューの [新規] をクリックし、ページ] をクリックします。
  2. 新規作成] ダイアログ ボックスで、[ページ] タブで [ HTML ] をクリックし、[ OK] をクリックします。
  3. ドキュメント ウィンドウのフッター] 領域で [コード] ビューを表示するコードをクリックします。
  4. 選択し、Web ページのすべての HTML コードを削除します。
  5. 入力するか、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>
  6. ログオン Web サイトのルート フォルダーには、 logon.aspとしてページを保存します。
  7. [ファイル] メニューには、logon.asp Web ページを閉じます閉じるををクリックします。

ログオンを作成するファイルが含まれます

インクルード ファイルは、ユーザー名とパスワード機能を提供します。保護された Web ページとログオン Web ページの両方で使用できます。ログオンを作成するファイルが含まれて、これらの手順に従います。
  1. 式 Web デザイナーで、[ファイル] メニューの [新規] をクリックし、ページ] をクリックします。
  2. 新規作成] ダイアログ ボックスで、[ページ] タブで [ HTML ] をクリックし、[ OK] をクリックします。
  3. ドキュメント ウィンドウのフッター] 領域で [コード] ビューを表示するコードをクリックします。
  4. 選択し、Web ページのすべての HTML コードを削除します。
  5. 入力するか、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
    %>
  6. ログオン Web サイトの [_private] フォルダーにlogon.incとしてページを保存します。
  7. ファイル] メニューの [logon.inc Web ページを閉じます閉じるをクリックします。

ログオン Web サイトをテストします。

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

    Web ブラウザーでは、サンプル ホーム ページをロードしするログオンしていないことを示しています。
  2. セキュリティ保護されていないページのリンクをクリックします。

    ページが読み込まれ、ログオンしていないことを示しています。既定のページに戻るには既定値に戻るリンクをクリックします。
  3. パスワードで保護されたページのリンクをクリックします。

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

    保護されたページが表示され、 testuserとしてログオンしていることを示しています。既定のページに戻るには既定値に戻るリンクをクリックします。ホーム ページが読み込まれ、 testuserとしてログオンしていることを示しています。
  5. セキュリティ保護されていないページのリンクをクリックします。



    ページが読み込まれ、 testuserとしてログオンしていることを示しています。

ログオン Web サイトをカスタマイズします。

次の方法で Web サイトのログオン サンプルをカスタマイズできます。
  • ユーザー名とパスワードを追加します。
    式の Web にデータベースを開くし、 tblUsersテーブルにユーザーを追加できます。
  • パスワードで保護されている他の Web ページを作成します。
    Web サイト内のパスワードによって保護されている別の Web ページを作成するには、するには、.asp ファイル名拡張子、 Mypage.aspなどを使用してファイルを保存し、コード ビューの最上部に次の 2 行を追加します。
    <% @language="vbscript" %><!--#include virtual="/logon/_private/logon.inc"-->
    最初の行は、スクリプト言語の Microsoft Visual Basic Scripting Edition (VBScript) を使っていることを指定します。2 行目にユーザー名が含まれています、ログオンからパスワード機能には、以前のバージョンで作成したファイルが含まれます。

関連情報

FrontPage 2003、Active Server Pages、および Access データベースを使用してパスワードによって保護されている Web ページを作成する方法の詳細については、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

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


詳細については、クライアントとサーバー間の HTTP 通信をセキュリティ保護する方法について、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

299525 IIS 5.0 および iis 証明書サーバー 2.0 を使用して SSL をセットアップする方法

299875 IIS で SSL を実装する方法


統合する方法の詳細については、データベースでは、Active Server Pages (ASP) は、マイクロソフト サポート技術情報の記事を表示するのには次の資料番号をクリックします。

299987データベースと ASP セッションを使用して ASP セキュリティを実装する方法

300382 IIS で ASP ページからデータベース接続を作成する方法

318287すべき Active Server Pages (ASP) を使用して、FrontPage 2002 で

プロパティ

文書番号:928706 - 最終更新日: 2017/02/02 - リビジョン: 1

フィードバック