2013/06/11

[ASP.NET MVC2] 簡単なカスタム認証機能の実装

[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 件のコメント:

コメントを投稿