株式会社インデペンデンスシステムズ横浜

システム開発エンジニアの西田五郎が運営しております。Raspberry Pi や Arduino その他新規開発案件のご依頼をお待ちしております。

ASP.NET

ASP.NETユーザ管理(その2)WebFormsでのASP.NET Identity

投稿日:

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というプロジェクト名にしています。
0002

次に、Web Formsのテンプレートを選択します。
0006

以上でプロジェクトは出来ました。この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) パスワードのリセット

AdSense

AdSense

-ASP.NET

執筆者:

関連記事

ASP.NET Web APIでデータ蓄積の続き(その2)グラフ表示

ASP.NET Web APIでデータ蓄積の続きの2回目です。前回は温度データを最新から一覧表示するページを作成しました。今回は温度データのグラフを表示するページを作成します。最終的に以下のように表示 …

no image

Microsoft AzureでASP.NETサイトを公開してみる(その1)概要と開発環境

Microsoft Azureのサイト上で、ローカル環境で開発したASP.NETのサイトを公開するまでの手順についてです。(※簡単にサイト公開までということで、データベースは利用しません。ご了承下さい …

温度管理システム的なものを作ってみる(その4)Cloudでの処理

温度管理システム的なものを作ってみるの4回目です。前回は、Androidアプリでの温度データ取得について書きました。今回は、Cloudでの処理についてです。Cloudはここでは Microsoft A …

ASP.NET Web APIでデータ蓄積(その6)ASP.NET Web APIでの動作確認

ASP.NET Web APIでデータ蓄積の6回目です。前回は、ASP.NET Web APIテンプレートからプロジェクトを作成しました。さらに、センサデバイスの温度データを蓄積するイメージのモデルを …

no image

Microsoft AzureでSQL DBを使ってみる(その1)概要とASP.NETサイトの作成

以下の投稿で、Microsoft AzureでASP.NETサイトを公開してみましたが、その際にはデータベースを使っていなかったので、次の段階としてMicrosoft Azure(以下、Azureと表 …