この章の内容は次のとおりです。
Oracleは、様々な方法でMicrosoft ASP.NETと直接統合されます。
Oracle Developer Tools for Visual Studioでは、データ駆動型のWebサイトを設計する簡単な方法が提供されます。
ODP.NETによって、ASP.NETデータ・アクセスが可能になります。
Oracle Providers for ASP.NETは、Microsoft ASP.NETのコントロールおよびサービスと直接統合され、Webサイトの状態管理機能が提供されます。
このチュートリアルでは、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サイト認証を使用する予定がある場合は、「認証用のWebサイトの有効化」に示すように、次のセットアップを実行する必要があります。
この項では、Oracle Databaseからデータを取得するASP.NET Webサイトを作成する方法について説明します。 Webサイトでは、ASP.NET GridViewにデータが表示され、ユーザーは結果を参照できるようになります。
この項の内容は次のとおりです。
ASP.NET Webサイトをグリッドで作成するには、次の手順を実行します。
Visual Studioを起動します。
「File」メニューから「New」、「Web Site...」の順に選択します。
「New Web Site」から、「ASP.NET Web Site」を選択し、Webサイト用のディレクトリの場所を入力するか、または参照します。「OK」をクリックします。
「Default.aspx」
タブで、画面下部の「Design」アイコンをクリックします。
点線の四角形として表示される<div>
要素内に、Employees Listなどのタイトルを入力します。
「View」メニューから「Toolbox」を選択します。
「Data」グループを展開し、「GridView」コントロールを、デザイナの<div>
というのラベル付いた点線の四角形内にドラッグします。
ダミーのタイトルと内容が含まれているグリッドが表示されたら、右側の「GridView Tasks」リストを確認します。
このタスク・リストが表示されない場合は、グリッドを選択してから右側の>記号をクリックします。
前述の項(手順8)に示されているように、「GridView Tasks」の「Choose Data Source」リストから「<New data source...>」を選択します。
「Data Source Configuration Wizard」が起動されます。
「Database」を選択します。 このデータソースのIDとしてHR
を入力します。「OK」をクリックします。
下矢印をクリックして、リストから「HR.ORCL
」を選択します。 「Next」をクリックします。
「Next」をクリックして、接続文字列をアプリケーション構成ファイルに保存します。
「Name」リストからEMPLOYEES
表を選択します。 「Columns」リストで、アスタリスク(*
)の横にあるボックスを選択します。
このように選択すると、EMPLOYEES
表のすべての行を戻すようにOracleに指示されます。SELECT
*
FROM
EMPLOYEES
と入力した場合と同様です。
「Next」をクリックします。
「Test Query」をクリックします。
「Test Query」の結果が表示されたら、「Finish」をクリックします。
「GridView Tasks」から、「Enable Paging」を選択します。このタスク・リストが表示されない場合は、グリッドを選択してから右側の>記号をクリックします。 右にスクロールさせる必要がある場合があります。
「View」メニューから「Solution Explorer」を選択し、Webサイトを選択します。 右クリックして「Build Web Site」を選択します。 ステータス・バーに成功または失敗が示されます。
「View」メニューから「Debug」を選択し、「Start Without Debugging」を選択します。
次のようなブラウザ・ウィンドウが表示され、問合せでリクエストしたデータが示されます。 このページの左下の番号を使用すると、ページを指定して結果を表示できます。
ブラウザを閉じます。
この項では、従業員データにアクセスできるユーザーを制限するために、Webサイト認証を追加する方法について説明します。 ASP.NETログイン・コントロールを使用して認証を行い、Oracle Providers for ASP.NETで作成および格納されたユーザーと照合します。
次の項の「Oracle Providers for ASP.NETの有効化および軽量Webユーザーの作成」では、構築したASP.NETアプリケーションを使用し、認可されたユーザーが情報にアクセスできるように従業員データを保護します。 Oracle Providers for ASP.NETを使用して、アプリケーションのWebユーザーを作成します。 このWebユーザーは、ログイン・コントロールを使用してWebアプリケーションを起動し、資格証明が正しい場合は従業員情報にアクセスできます。
前の項で作成したWebサイトを再度開きます。
「View」、「Solution Explorer」の順に選択し、このWebサイトをクリックします。
このWebサイトを右クリックして「Add New Item」を選択します。
「Web Form」を選択し、名前としてlogin.aspx
を入力し、「Add」をクリックします。
「login.aspx
」ページが表示されたら、「Design」タブに切り替えます。
「View」メニューから「Toolbox」を開き、「Login」セクションを展開して、ログイン・コントロールをフォームの<div>
というラベルの付いた点線の四角形内にドラッグ・アンド・ドロップします。
これは、標準のASP.NETログイン・コントロールで、Oracle Databaseに格納されているユーザー・ログイン資格証明を取得して確認できます。
ログイン・コントロールを右クリックし、「Properties」を選択します。「DestinationPageUrl」
に対して、Default.aspx
を選択するか、または入力します。
ログインに成功すると、従業員データが含まれている「Default.aspx
」ページが表示されます。 ログインに失敗すると、ログイン・ページに戻ります。
この項では、ASP.NET Webサイト管理ツールを使用して次の作業を実行します。
Oracle ASP.NETプロバイダを使用するようにWebサイトに指示します。
このWebサイトに固有の新しいWebユーザーを作成して、「認証用のWebサイトの有効化」でこのサイトに追加した認証機能を実際に使用してみます。
Oracle ASP.NETプロバイダを使用するようにWebサイトに指示し、新しいWebサイト・ユーザーを作成するには、次の手順を実行します。
Visual Studioで、「Website」、「ASP.NET Configuration」の順に選択します。
「ASP.NET Web Site Administration Tool」が表示されたら、「Provider」タブを選択します。
「Provider」ページで、2つ目のリンクの「Select a different provider for each feature (advanced)」を選択します。
「Provider」ページが再度表示されたら、「Membership Provider」および「Role Provider」でOracleバージョンが選択されていない場合は選択します。
「Security」タブに移動し、「Users」の下の「Select authentication type」をクリックします。
デフォルトでは、ASP.NETサイトはユーザーの識別にWindows認証を使用します。現在構築中のWebサイトでは、サイト固有のログインおよびパスワードでユーザーを識別します。このため、このサイトではログインおよびパスワードの使用が想定されるように構成する必要があります。
「Security」ページが再度表示されたら、「From the internet」を選択して「Done」をクリックします。
「Security」タブが再度表示され、「Users」の下に新しいリンクが表示されたら、「Create user」を選択します。
「Create User」セクションで、Webサイトへのアクセスを許可するユーザーの情報を次のように入力します。英数字以外の文字を1文字含む7文字以上のパスワードを入力します。
「Create User」をクリックします。
アカウントが正常に作成されたことを示す「Security」ページが表示されたら、「Security」タブをクリックします。
注意: この画面のその他のオプションには、他のユーザーの作成、別のタブへの移動などがあります。
「Security」メイン・ページが再度表示されたら、「Access Rules」の下の「Manage access rules」を選択します。
注意: 「Users」には現在1人のユーザーが存在します。
「Security」タブに「Manage Access Rules」セクションが表示されたら、「Add new access rule」をクリックします。
「Anonymous users」および「Deny」を選択し、「OK」をクリックします。
デフォルトでは、このWebサイトへの匿名アクセスは有効です。 前述の設定によって、匿名アクセスが無効化されWebサイトが保護されています。 これで、従業員データを表示できるのは認証済ユーザーのみです。
「Security」ページには、Webサイトが匿名ユーザーによるアクセスを拒否したことが示されます。
「Done」をクリックします。
ブラウザを閉じます。
このWebサイトに固有のWebユーザーを作成したため、Webサイトはこのユーザーによる従業員データへのアクセスを許可し、匿名ユーザーを含む他のユーザーによるアクセスを拒否します。
この項では従業員データへのアクセスを、匿名ユーザー、認可されていないユーザー、認可されているがパスワードが誤っているユーザー、認可されていてパスワードも正しいユーザーとして試みます。 Webサイトが従業員データへのアクセスを許可するのは、最後のシナリオのみです。
注意: ASP.NETプロバイダ・ユーザーとして10分間に5回以上連続して無効なパスワードを入力すると、アカウントはロックされるため、認可されていないユーザーはパスワードを推測してアクセスすることができなくなります。 Oracle Membership Providerでは、machine.config ファイルまたはweb.config ファイルで変更できるプロパティを介してこのようなセキュリティ対策を設定します。プロパティは、MaxInvalidPasswordAttempts (デフォルトの試行回数は5回)およびPasswordAttemptWindow (デフォルトの時間は10分)です。
アカウントがロックされた場合は、 |
「Debug」メニューから「Start Without Debugging」を選択し、ログインWebページが表示されたら、URLの末尾をlogin.aspx
ではなくDefault.aspx
に変更して[Eenter]キーを押します。
アクセスは拒否され、ログイン・ページにリダイレクトされます。 このことは、匿名ユーザーはWebサイトを参照できず、資格証明を持つユーザーのみがアクセスできることを示しています。
認証メカニズムを試してみる場合は、この手順を繰り返したり、様々なパターンを試すこともできます。 いずれのパターンでも、新しいブラウザを起動するか、ブラウザ・キャッシュを消去します。 ブラウザではWebページがキャッシュされるため、Default.aspx
に再びアクセスした場合にこのWebページが表示されても、それはキャッシュされたものであることがあります。 これは意図された動作ではありません。Webページでは、ASP.NETプロバイダ認証プロセスが行われる必要があります。そのためには、新しいブラウザ・インスタンスを使用するか、またはブラウザのキャッシュを消去します。
login.aspx
から後のURLテキストを削除します。 これによって、URLは、ユーザーが最初にサイトにアクセスしたときの元の状態に戻ります。
ユーザー名Bobを入力し、英数字以外の文字を1文字含む7文字以上のパスワードを入力します。
「Log In」をクリックします。
ページには、「Your login attempt was not successful. Please try again.」というメッセージが再度表示されます。
Bobは認可されたユーザーではありません。 Webサイトは、正確にこのユーザーのアクセスを拒否します。
ユーザー名Anneを入力し、そのWebサイト・ユーザーの誤ったパスワードを入力します。
「Log In」をクリックします。
スクリーンショットに示されているように、このユーザーはアクセスを拒否され、コントロールはOracle Membership Providerに格納されている資格証明でこのユーザーの資格証明を検証できませんでした。
Webサイト・ユーザーの正しいパスワードを入力します。
「Log In」をクリックします。
従業員データが表示されます。 ここでは、データにアクセスできるのが認可されたユーザーのみであることが示されます。 このように、Oracle Providers for ASP.NETでは、非常に簡単な方法でWebサイトにセキュリティが提供されます。
これで、データ駆動型ASP.NET Webアプリケーションの構築が完了しました。 このアプリケーションによって、認証が実行され、データベースから従業員データが取得されます。