[ASP.NET MVC2] 簡単なカスタム認証機能の実装
環境
- Visual Studio 2010
- .Net Framework 4
- ASP.NET MVC2
- PostgreSQL 8.4
概要
- LoginとMenuの2画面
- 未認証状態でMenuにアクセスするとLoginに戻される
- PostgreSQL上でアカウント管理を行う
プロジェクトの作成
プロジェクト名: CustomAuthorize
パッケージ追加
NuGetで必要なパッケージを追加
- Npgsql
- PetaPoco.Core
- log4net
- Bootstrap
- (jQuery 1.9.1) Bootstrapと一緒に追加される
log4net.config
- 構成ファイルを追加
- ファイル名: log4net.config
- ファイル名に日付を付けてローテートさせる
Global.asax.cs
- 初期表示パスを /Login/Index に変更
- Application_Start() にてlog4net設定ファイル読み込み
Controllerの作成
- LoginController
とりあえず空っぽにしておく - MenuController
未認証ではアクセスできないように classに [Authorize] を設定
Viewの作成
マスターページを作成
MVC2 ビューマスターページを Views/Shared に追加
- Site.Master
- ログインユーザー名を Session["USER_NAME"] から取得し、ヘッダー部分に表示
- ログアウトボタン押下で LoginController/Logoff に Ajax($.get) で問い合わせ
- 結果に関わらず Login画面に遷移
Login View を作成
- LoginController.csを開く
Index Methodを右クリック → ビューの追加 を選択
Login/IndexはSite.Masterを使用しないLogin/Index.aspx
- LOGINボタン押下で LoginController/Authenticate に Ajax($.post) で問い合わせ
- 認証結果を受けて、メニュー画面に遷移
Menu View を作成
- MenuController.csを開く
Index Methodを右クリック → ビューの追加 を選択
Menu/Index.aspx
Modelの作成
Database(今回はPostgreSQL)の接続には PetaPoco を使用する
user.cs を作成
AccountManager.cs を作成
LoginController 実装
LoginController.cs
- Authenticate: ログイン認証を行う
- Logoff : ログオフ処理を行う
実行してみる。
- 初期表示で localhost/Login が表示される
- 認証せずに localhost/Menu にアクセスすると、 localhost/Login に戻される
- localhost/Login で認証を行うと localhost/Menu に遷移する
0 件のコメント:
コメントを投稿