ASP.NETユーザ管理の2回目です。前回は、主にASP.NET Identityとはといった概要的な内容について書きました。今回から実際に動作させながら確認します。
WebFormsのテンプレートを元にいろいろとカスタマイズをしようと考えていますが、ASP.NET Identityというフレームワークとしては、WebForms、MVCをはじめ、ASP.NET共通で使えます。Microsoft.AspNet.Identityという名前空間があって、ここに、ASP.NET Identityのクラス、インタフェース関連があります。以下、代表的と思えるものです。実際には、これらのクラス、インターフェースを利用、拡張して開発を行います。
Microsoft.AspNet.Identity.IUserインターフェース
最小単位のユーザインターフェイス
Microsoft.AspNet.Identity.IRoleインターフェース
最小単位のロールインターフェイス
Microsoft.AspNet.Identity.UserManagerクラス
ログイン、ユーザの検索等、一連のユーザ管理のクラス
Microsoft.AspNet.Identity.RoleManagerクラス
ロールとユーザの関連付け等、一連のロール管理クラス
Microsoft.AspNet.Identity.EntityFramework.IdentityUser
既定の EntityFramework IUser 実装
Microsoft.AspNet.Identity.EntityFramework.IdentityRole
ロールのエンティティ
Microsoft.AspNet.Identity.EntityFramework.IdentityDbContext
既定のエンティティ タイプを使用する既定の DB コンテキスト
あと、Owinに関連するクラスも必要になってきます。
以上は、ほぼ以下からの引用です。
Microsoft ASP.NET Identity
今回は、ASP.NET WebFormsのテンプレートの初期状態で、以上のASP.NET Identityがどのように組み込まれているかを拡張方法も含めて見ていきます。
まずは、WebFormsのテンプレートのプロジェクトを作成します。
メニュー → 新しいプロジェクト から ASP.NET Webアプリケーションを選択して、必要に応じて任意のプロジェクト名を入力します。以下では、ASPNETWebFormsIdentityというプロジェクト名にしています。
以上でプロジェクトは出来ました。このWebFormsベースのプロジェクトにASP.NET Identityがどのように組み込まれているか拡張の視点も含めて軽くですが以下のように確認しました。
ホーム\App_Start\IdentityConfig.cs
このソースファイルに、ApplicationUserManagerというクラスがあります。これは、Microsoft.AspNet.Identity.UserManagerを拡張する形式で定義されています。このApplicationUserManagerクラスが、自分のアプリケーションで使用するユーザマネージャになります。必要に応じて、更に拡張、カスタマイズしていきます。
同じくこのソースにメール送信のひな形があります。メール送信はここに記述します。
ホーム\Models\IdentityModels.cs
このソースファイルに、ApplicationUserというクラスがあります。Microsoft.AspNet.Identity.EntityFramework.IdentityUserを拡張する形式で定義されていています。このApplicationUserが自分のアプリケーションのユーザエンティティになります。元のIdentityUserにないプロパティ(ユーザ属性)が必要になった場合、ここに追加します。Code Firstなので、ここを拡張すればいいです。データベースのテーブル定義は考えなくていいです。
ホーム\Account配下
ここに、ユーザ登録、ログイン等のAccountに関するページ、ビハインドコードがあります。この配下のページ、ビハインドコードを必要に応じてカスタマイズしていきます。
他にもいろいろと出てくると思いますが、随時書いていきます。以上を踏まえて、次回から実際にカスタマイズしていきます。今回ここまでです。次回はユーザ登録時にメールを送信する処理についてです。
今回のシリーズの一覧
ASP.NETユーザ管理(その1)identityフレームワーク
ASP.NETユーザ管理(その2)WebFormsでのASP.NET Identity
ASP.NETユーザ管理(その3)ユーザ登録時のメール確認
ASP.NETユーザ管理(その4)ユーザ情報の追加
ASP.NETユーザ管理(その5)メンバー専用エリアと管理者ページ
ASP.NETユーザ管理(その6)ロール管理の追加
ASP.NETユーザ管理(その7)ユーザアカウントロック
ASP.NETユーザ管理(その8) 2要素認証
ASP.NETユーザ管理(その9) パスワードのリセット