2007年8月13日月曜日

ASP.NET Loginコントロール

Loginコントロールを使ってみます。

■Webサイト管理ツールを起動し、認証関連の設定を行います。
メニューバー「Webサイト」→「ASP.NET構成」を選択し、「Webサイト管理ツール」を起動します。
Webサイト管理ツールの「セキュリティ」タブ→「手順に従ってセキュリティを構成するには、セキュリティ設定ウィザードを使用してください。」リンクからセキュリティ構成ウィザードを起動します。


「インターネット」からを選択します。
ログインコントロールを利用した認証を行う場合は必ず「インターネット」を選択する必要があります。


「このWebサイトにロールを有効化します。」チェックを有効にします。


「Admin」ロールを追加します。


新しいユーザーを追加します。
「アクティブユーザ」にチェックが入っていない場合は、そのユーザーはアプリケーション上で無効になります。


アクセス規制を追加します。
「Admin」フォルダを選択し、Adminロールのアクセスを許可に設定します。

同様に「Admin」フォルダを選択し、すべてのユーザーのアクセスを拒否に設定します。


ユーザとロールの関連付けを行います。
完了ボタンでウィザードを終了し、セキュリティタブの「ユーザー」→「ユーザーの管理」をクリックします。


先ほど登録したユーザの「ロールの編集」をクリックし、表示されらロールからAdminロールを選択します。



■ログイン確認用のページを作成します。
アプリケーションルート配下にフォルダ「Admin」を作成し、ログイン確認用のページ「AdminTop.aspx」を作成します。

■Loginページを作成します。
アプリケーションルート配下に「Login.aspx」を作成します。
(ログインページはアプリケーションルート直下に「Login.aspx」という名前で配置する必要があります。ファイル名は変更することも可能ですが、その場合はWeb.configの設定も変更する必要があります。)
Login.aspxにLoginコントロールとValidationSummaryコントロールを配置します。
ValidationSummaryコントロールの
ShowMessageBoxプロパティをTrue
ShowSummaryプロパティをFalse
ValidationGroupプロパティをlogin
に設定します。


■確認
AdminTop.aspxを実行してみます。
認証されていないのでLogin.aspxが表示されます。
Webサイト管理ツールで設定したユーザでログインし、もともと要求していたAdminTop.aspxが表示されれば成功です。


■まとめ
アプリケーションルート直下に「App_Data」フォルダが作成され「ASPNETDB.MDF」データベースが作成されます。これは、ユーザー/ロール情報をはじめとした一連のアプリケーション管理データを格納するためのデータベース・ファイルで、ユーザ情報(メンバシップ、プロファイル)やロール情報等が登録されるデータは、既定ではローカルのSQL Server ExpressにASPNETDBという名前でデータベースを作成し、登録されます。このASPNETDBには、ユーザ情報やロール情報等を取り扱うテーブルやストアドプロシージャが作成されています。以降、ログインやアクセス管理に際しては、このファイルが参照されます。

0 件のコメント: