連載

ASP.NET 2.0が変えるWebアプリ開発の世界

第3回 ASP.NET 2.0のログイン管理とウィザード・ページ

山田 祥寛
2004/11/13
Page1 Page2 Page3 Page4

○メンバシップ・フレームワークに含まれるさまざまなセキュリティ・コントロール

 メンバシップ・フレームワークに含まれるセキュリティ・コントロールは、Loginコントロールだけではない。以下に、セキュリティ・コントロールに含まれる主要なコントロールの実行結果を、画面のみで簡単に紹介していくことにしよう。

■PasswordRecoveryコントロール

 PasswordRecoveryコントロールは、ユーザーがパスワードを忘れた場合に問い合わせを行うためのコントロールだ。ユーザーIDと対応する秘密の質問に対して答えることで、あらかじめ登録しておいたメール・アドレスにパスワードを送信することができる。ただし、メール送信に当たっては、あらかじめWAAの[Application]タブ−[SMTP 電子メール設定の構成]から使用するSMTPサーバの情報を設定しておく必要がある。

PasswordRecoveryコントロールを利用した.aspxファイルの実行例
ユーザーIDと秘密の質問に対して回答することで、該当するユーザーにパスワードをメール送信する。

■CreateUserWizardコントロール

 CreateUserWizardコントロールは、新規にユーザー情報を作成するためのウィザード画面を提供するコントロールだ。WAAの[Security]タブ−[ユーザーの作成]に相当する画面を提供してくれる。

CreateUserWizardコントロールを利用した.aspxファイルの実行例
新規ユーザー情報を作成するためのウィザード画面を提供する。

■ChangePasswordコントロール

 ChangePasswordコントロールは、現在ログイン中のユーザーのパスワード情報を変更するための画面を提供する。

ChangePasswordコントロールを利用した.aspxファイルの実行例
パスワードを変更するためのウィザード画面を提供する。

 以上が比較的大粒なセキュリティ・コントロールだ。

■LoginNameコントロールとLoginStatusコントロール

 あとは少々小粒になるが、カレント・ユーザーの名前を表示する「LoginNameコントロール」、ログイン状態によってログイン/ログアウトのリンクボタンを生成する「LoginStatusコントロール」なども有用だろう。ログイン状態を判定して、ゲスト/登録ユーザー用に異なるビューを提供する「LoginViewコントロール」などもある。

LoginNameコントロール、LoginStatusコントロールを利用した.aspxファイルの実行例
  LoginNameコントロールでログイン名を表示。
  LoginStatusコントロールでログイン状態に応じて、ログイン/ログアウトのリンクボタンを選択表示。
 

[Column]メンバシップAPIを利用したログイン・ページの作成
 以上で説明したように、セキュリティ・コントロールは大変充実したものであり、ほとんどの場合、自前のセキュリティ機能を構築する必要はない(また、あえて不必要な自前の実装は避けるべきだろう)。しかし、それでも自前でログイン・ページなどを作成したいという開発者のために、「メンバシップAPI」と呼ばれるクラス群が用意されている。

 メンバシップAPIはセキュリティ・コントロールに相当する機能を備えており、独自のセキュリティ機能を実装する場合にも、コーディングを容易にしてくれる。以下に、メンバシップAPIで実装したログイン・ページの例を示しておこう。

自前で作成したログインページ
  TextBoxコントロール。
  TextBoxコントロール。
  Buttonコントロール。

 [ログイン]ボタンをクリックしたときに呼び出されるイベント・プロシージャは以下のとおりだ(VB.NETのサンプル・コード)。

Sub btnLogin_Click(ByVal sender As Object, ByVal e As System.EventArgs)
  If Membership.ValidateUser(txtUsr.Text, txtPass.Text) Then
    FormsAuthentication.RedirectFromLoginPage(txtUsr.Text, False)
  End If
End Sub
[ログイン]ボタンをクリックしたときに呼び出されるイベント・プロシージャ(VB.NET)

 先述したようにユーザー情報はAccessデータベースで管理されているが、メンバシップAPI(ValidateUserメソッド)を利用することで、バックエンドのデータ・ストアはまったく意識する必要がなくなることがお分かりいただけるはずだ。.NET TIPS「[ASP.NET]フォーム認証のユーザー管理をデータベース・サーバで行うには?」で紹介しているコードと比べると、その便利さがより実感できるかもしれない。

 

 INDEX
  ASP.NET 2.0が変えるWebアプリ開発の世界
  第3回 ASP.NET 2.0のログイン管理とウィザード・ページ
    1.ユーザー管理を簡略化するメンバシップ・フレームワーク
  2.メンバシップ・フレームワークに含まれるセキュリティ・コントロール
    3.ウィザード式の画面を一元管理するWizardコントロール
    4.MultiView&Viewコントロールによるマルチビュー画面の構築
 
インデックス・ページヘ  「ASP.NET 2.0が変えるWebアプリ開発の世界」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間