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

システム開発エンジニアの西田五郎が運営しております。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

執筆者:

関連記事

no image

ASP.NETユーザ管理(その7)ユーザアカウントロック

ASP.NETユーザ管理(ASP.NET Identityフレームワーク)の7回目です。前回は、ロール管理を使ってみました。今回はユーザアカウントロックを使ってみます。ログイン時に規定の回数パスワード …

no image

Microsoft AzureでSQL DBを使ってみる(その2)Azureでの公開

前回の続きです。Microsoft Azure(以下、Azureと表記します。)のSQLデータベース(以下 SQLDBと表記します。)を使ってみます。毎回のように書いていますが手順は一つの方法ですので …

no image

Microsoft AzureでASP.NETサイトを公開してみる(その3)Visual Studio EEからの公開

Microsoft AzureでASP.NETサイトを公開してみるの3回目です。今回は、前回Visual Studio Express 2013 for Web で作成したプロジェクトをそのままをVi …

no image

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

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

no image

Microsoft AzureでASP.NETサイトを公開してみる(その2)ASP.NETサイトの作成

Microsoft AzureでASP.NETサイトを公開してみるの2回目です。今回は、前回インストールした Visual Studio Express 2013 for Web を使ってローカル環境 …