ヘッダーをスキップ
Oracle Database 2日で.NET開発者ガイド
11gリリース2(11.2)
B56266-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

7 Oracle DatabaseでのASP.NETの使用

この章の内容は次のとおりです。

概要: Oracle Developer Toolsを使用したASP.NETアプリケーションの構築

Oracleは、様々な方法でMicrosoft ASP.NETと直接統合されます。

このチュートリアルでは、Oracle Developer Toolsを使用してデータ駆動型のWebアプリケーションを構築する方法や、Oracle Providers for ASP.NETを使用した簡単な方法でそのアプリケーションにセキュリティを追加する方法など、これらの機能のいくつかを紹介します。

まず、これらのツールを使用して、Oracle Databaseからデータ・グリッドに従業員データを取得するWebアプリケーションを構築します。その後、ログイン・コントロールを追加し、認可されたWebユーザーに対してのみこの従業員情報へのアクセスを許可することでこのアプリケーションを保護します。 最後に、Oracle Providers for ASP.NETを使用して、認可されたWebユーザーを作成します。このWebユーザーは、アプリケーションによる認証のためにOracle Database内に格納されます。

このチュートリアルを始める前に

Oracle Developer ToolsでASP.NETアプリケーションを構築するには、次の各項で説明されているセットアップを実行する必要がある場合があります。

Webサイトの作成およびデータベースへの接続

この項では、Oracle Databaseからデータを取得するASP.NET Webサイトを作成する方法について説明します。 Webサイトでは、ASP.NET GridViewにデータが表示され、ユーザーは結果を参照できるようになります。

この項の内容は次のとおりです。

ASP.NET Webサイトの作成

ASP.NET Webサイトをグリッドで作成するには、次の手順を実行します。

  1. Visual Studioを起動します。

  2. 「File」メニューから「New」「Web Site...」の順に選択します。

    aspnt01.gifの説明が続きます。
    aspnt01.gifの説明

  3. 「New Web Site」から、「ASP.NET Web Site」を選択し、Webサイト用のディレクトリの場所を入力するか、または参照します。「OK」をクリックします。

    aspnt02.gifの説明が続きます。
    aspnt02.gifの説明

  4. 「Default.aspx」タブで、画面下部の「Design」アイコンをクリックします。

    aspnt03.gifの説明が続きます。
    aspnt03.gifの説明

  5. 点線の四角形として表示される<div>要素内に、Employees Listなどのタイトルを入力します。

    aspnt04.gifの説明が続きます。
    aspnt04.gifの説明

  6. 「View」メニューから「Toolbox」を選択します。

    aspnt05.gifの説明が続きます。
    aspnt05.gifの説明

  7. 「Data」グループを展開し、「GridView」コントロールを、デザイナの<div>というのラベル付いた点線の四角形内にドラッグします。

    aspnt06.gifの説明が続きます。
    aspnt06.gifの説明

  8. ダミーのタイトルと内容が含まれているグリッドが表示されたら、右側の「GridView Tasks」リストを確認します。

    aspnt08.gifの説明が続きます。
    aspnt08.gifの説明

    このタスク・リストが表示されない場合は、グリッドを選択してから右側の>記号をクリックします。

    asnpt07.gifの説明が続きます。
    asnpt07.gifの説明

データソースの作成

データソースを作成するには、次の手順を実行します。

  1. 前述の項(手順8)に示されているように、「GridView Tasks」の「Choose Data Source」リストから「<New data source...>」を選択します。

    「Data Source Configuration Wizard」が起動されます。

  2. 「Database」を選択します。 このデータソースのIDとしてHRを入力します。「OK」をクリックします。

    aspnt09.gifの説明が続きます。
    aspnt09.gifの説明

  3. 下矢印をクリックして、リストから「HR.ORCL」を選択します。 「Next」をクリックします。

    aspnt10.gifの説明が続きます。
    aspnt10.gifの説明

  4. 「Next」をクリックして、接続文字列をアプリケーション構成ファイルに保存します。

    aspnt11.gifの説明が続きます。
    aspnt11.gifの説明

  5. 「Name」リストからEMPLOYEES表を選択します。 「Columns」リストで、アスタリスク(*)の横にあるボックスを選択します。

    このように選択すると、EMPLOYEES表のすべての行を戻すようにOracleに指示されます。SELECT * FROM EMPLOYEESと入力した場合と同様です。

    「Next」をクリックします。

    aspnt12.gifの説明が続きます。
    aspnt12.gifの説明

  6. 「Test Query」をクリックします。

    aspnt13.gifの説明が続きます。
    aspnt13.gifの説明

  7. 「Test Query」の結果が表示されたら、「Finish」をクリックします。

    aspnt14.gifの説明が続きます。
    aspnt14.gifの説明

  8. 「GridView Tasks」から、「Enable Paging」を選択します。このタスク・リストが表示されない場合は、グリッドを選択してから右側の>記号をクリックします。 右にスクロールさせる必要がある場合があります。

    aspnt15.gifの説明が続きます。
    aspnt15.gifの説明

  9. 「View」メニューから「Solution Explorer」を選択し、Webサイトを選択します。 右クリックして「Build Web Site」を選択します。 ステータス・バーに成功または失敗が示されます。

  10. 「View」メニューから「Debug」を選択し、「Start Without Debugging」を選択します。

    次のようなブラウザ・ウィンドウが表示され、問合せでリクエストしたデータが示されます。 このページの左下の番号を使用すると、ページを指定して結果を表示できます。

    aspnt16.gifの説明が続きます。
    aspnt16.gifの説明

  11. ブラウザを閉じます。

認証用のWebサイトの有効化

この項では、従業員データにアクセスできるユーザーを制限するために、Webサイト認証を追加する方法について説明します。 ASP.NETログイン・コントロールを使用して認証を行い、Oracle Providers for ASP.NETで作成および格納されたユーザーと照合します。

次の項の「Oracle Providers for ASP.NETの有効化および軽量Webユーザーの作成」では、構築したASP.NETアプリケーションを使用し、認可されたユーザーが情報にアクセスできるように従業員データを保護します。 Oracle Providers for ASP.NETを使用して、アプリケーションのWebユーザーを作成します。 このWebユーザーは、ログイン・コントロールを使用してWebアプリケーションを起動し、資格証明が正しい場合は従業員情報にアクセスできます。

  1. 前の項で作成したWebサイトを再度開きます。

  2. 「View」「Solution Explorer」の順に選択し、このWebサイトをクリックします。

    aspnt17.gifの説明が続きます。
    aspnt17.gifの説明

  3. このWebサイトを右クリックして「Add New Item」を選択します。

    aspnt18.gifの説明が続きます。
    aspnt18.gifの説明

  4. 「Web Form」を選択し、名前としてlogin.aspxを入力し、「Add」をクリックします。

    aspnt19.gifの説明が続きます。
    aspnt19.gifの説明

  5. login.aspx」ページが表示されたら、「Design」タブに切り替えます。

  6. 「View」メニューから「Toolbox」を開き、「Login」セクションを展開して、ログイン・コントロールをフォームの<div>というラベルの付いた点線の四角形内にドラッグ・アンド・ドロップします。

    aspnt20.gifの説明が続きます。
    aspnt20.gifの説明

    これは、標準のASP.NETログイン・コントロールで、Oracle Databaseに格納されているユーザー・ログイン資格証明を取得して確認できます。

  7. ログイン・コントロールを右クリックし、「Properties」を選択します。「DestinationPageUrl」に対して、Default.aspxを選択するか、または入力します。

    ログインに成功すると、従業員データが含まれている「Default.aspx」ページが表示されます。 ログインに失敗すると、ログイン・ページに戻ります。

    aspnt21.gifの説明が続きます。
    aspnt21.gifの説明

Oracle Providers for ASP.NETの有効化および軽量Webユーザーの作成

この項では、ASP.NET Webサイト管理ツールを使用して次の作業を実行します。

Oracle ASP.NETプロバイダを使用するようにWebサイトに指示し、新しいWebサイト・ユーザーを作成するには、次の手順を実行します。

  1. Visual Studioで、「Website」「ASP.NET Configuration」の順に選択します。

    aspnt23.gifの説明が続きます。
    aspnt23.gifの説明

  2. 「ASP.NET Web Site Administration Tool」が表示されたら、「Provider」タブを選択します。

    aspnt24.gifの説明が続きます。
    aspnt24.gifの説明

  3. 「Provider」ページで、2つ目のリンクの「Select a different provider for each feature (advanced)」を選択します。

    aspnt25.gifの説明が続きます。
    aspnt25.gifの説明

  4. 「Provider」ページが再度表示されたら、「Membership Provider」および「Role Provider」でOracleバージョンが選択されていない場合は選択します。

    aspnt26.gifの説明が続きます。
    aspnt26.gifの説明

  5. 「Security」タブに移動し、「Users」の下の「Select authentication type」をクリックします。

    デフォルトでは、ASP.NETサイトはユーザーの識別にWindows認証を使用します。現在構築中のWebサイトでは、サイト固有のログインおよびパスワードでユーザーを識別します。このため、このサイトではログインおよびパスワードの使用が想定されるように構成する必要があります。

    aspnt27.gifの説明が続きます。
    aspnt27.gifの説明

  6. 「Security」ページが再度表示されたら、「From the internet」を選択して「Done」をクリックします。

    aspnt28.gifの説明が続きます。
    aspnt28.gifの説明

  7. 「Security」タブが再度表示され、「Users」の下に新しいリンクが表示されたら、「Create user」を選択します。

    aspnt29.gifの説明が続きます。
    aspnt29.gifの説明

  8. 「Create User」セクションで、Webサイトへのアクセスを許可するユーザーの情報を次のように入力します。英数字以外の文字を1文字含む7文字以上のパスワードを入力します。

    「Create User」をクリックします。

    aspnt30.gifの説明が続きます。
    aspnt30.gifの説明

  9. アカウントが正常に作成されたことを示す「Security」ページが表示されたら、「Security」タブをクリックします。

    aspnt31.gifの説明が続きます。
    aspnt31.gifの説明

    注意: この画面のその他のオプションには、他のユーザーの作成、別のタブへの移動などがあります。

  10. 「Security」メイン・ページが再度表示されたら、「Access Rules」の下の「Manage access rules」を選択します。

    aspnt31a.gifの説明が続きます。
    aspnt31a.gifの説明

    注意: 「Users」には現在1人のユーザーが存在します。

  11. 「Security」タブに「Manage Access Rules」セクションが表示されたら、「Add new access rule」をクリックします。

    aspnt32.gifの説明が続きます。
    aspnt32.gifの説明

  12. 「Anonymous users」および「Deny」を選択し、「OK」をクリックします。

    デフォルトでは、このWebサイトへの匿名アクセスは有効です。 前述の設定によって、匿名アクセスが無効化されWebサイトが保護されています。 これで、従業員データを表示できるのは認証済ユーザーのみです。

    aspnt33.gifの説明が続きます。
    aspnt33.gifの説明

  13. 「Security」ページには、Webサイトが匿名ユーザーによるアクセスを拒否したことが示されます。

    「Done」をクリックします。

    aspnt34.gifの説明が続きます。
    aspnt34.gifの説明

  14. ブラウザを閉じます。

Webサイト認証のテスト

このWebサイトに固有のWebユーザーを作成したため、Webサイトはこのユーザーによる従業員データへのアクセスを許可し、匿名ユーザーを含む他のユーザーによるアクセスを拒否します。

この項では従業員データへのアクセスを、匿名ユーザー、認可されていないユーザー、認可されているがパスワードが誤っているユーザー、認可されていてパスワードも正しいユーザーとして試みます。 Webサイトが従業員データへのアクセスを許可するのは、最後のシナリオのみです。


注意:

ASP.NETプロバイダ・ユーザーとして10分間に5回以上連続して無効なパスワードを入力すると、アカウントはロックされるため、認可されていないユーザーはパスワードを推測してアクセスすることができなくなります。 Oracle Membership Providerでは、machine.configファイルまたはweb.configファイルで変更できるプロパティを介してこのようなセキュリティ対策を設定します。プロパティは、MaxInvalidPasswordAttempts(デフォルトの試行回数は5回)およびPasswordAttemptWindow(デフォルトの時間は10分)です。

アカウントがロックされた場合は、UnlockUserメソッドをコールするとユーザーをロック解除できます。


  1. 「Debug」メニューから「Start Without Debugging」を選択し、ログインWebページが表示されたら、URLの末尾をlogin.aspxではなくDefault.aspxに変更して[Eenter]キーを押します。

    aspnt39.gifの説明が続きます。
    aspnt39.gifの説明

    アクセスは拒否され、ログイン・ページにリダイレクトされます。 このことは、匿名ユーザーはWebサイトを参照できず、資格証明を持つユーザーのみがアクセスできることを示しています。

    aspnt40.gifの説明が続きます。
    aspnt40.gifの説明

    認証メカニズムを試してみる場合は、この手順を繰り返したり、様々なパターンを試すこともできます。 いずれのパターンでも、新しいブラウザを起動するか、ブラウザ・キャッシュを消去します。 ブラウザではWebページがキャッシュされるため、Default.aspxに再びアクセスした場合にこのWebページが表示されても、それはキャッシュされたものであることがあります。 これは意図された動作ではありません。Webページでは、ASP.NETプロバイダ認証プロセスが行われる必要があります。そのためには、新しいブラウザ・インスタンスを使用するか、またはブラウザのキャッシュを消去します。

  2. login.aspxから後のURLテキストを削除します。 これによって、URLは、ユーザーが最初にサイトにアクセスしたときの元の状態に戻ります。

    ユーザー名Bobを入力し、英数字以外の文字を1文字含む7文字以上のパスワードを入力します。

    「Log In」をクリックします。

    aspnt35.gifの説明が続きます。
    aspnt35.gifの説明

    ページには、「Your login attempt was not successful. Please try again.」というメッセージが再度表示されます。

    Bobは認可されたユーザーではありません。 Webサイトは、正確にこのユーザーのアクセスを拒否します。

  3. ユーザー名Anneを入力し、そのWebサイト・ユーザーの誤ったパスワードを入力します。

    「Log In」をクリックします。

    aspnt38.gifの説明が続きます。
    aspnt38.gifの説明

    スクリーンショットに示されているように、このユーザーはアクセスを拒否され、コントロールはOracle Membership Providerに格納されている資格証明でこのユーザーの資格証明を検証できませんでした。

  4. Webサイト・ユーザーの正しいパスワードを入力します。

    「Log In」をクリックします。

    従業員データが表示されます。 ここでは、データにアクセスできるのが認可されたユーザーのみであることが示されます。 このように、Oracle Providers for ASP.NETでは、非常に簡単な方法でWebサイトにセキュリティが提供されます。

これで、データ駆動型ASP.NET Webアプリケーションの構築が完了しました。 このアプリケーションによって、認証が実行され、データベースから従業員データが取得されます。