パスワード変更ページを簡単に作る方法
サンプル コードのダウンロード (aspnettips_ChangePassword.msi, 235 KB) ※このサンプルをお使いいただくためには、 が必要です。
セキュリティ上、パスワードを定期的に変更することは有用です。そのため、パスワードを変更するためのページの需要は多くあります。 ASP.NET 2.0 では、パスワード変更ページを簡単に作るための ChangePassword コントロールが用意されています。このコントロールを使えば、コードの追加をせずにパスワード変更機能を実装することができます。
今回は ChangePassword.aspx Web フォームを追加した状態から、その上に標準的なパスワード変更機能を実装します。なお、あらかじめ Web サイト管理ツールを使って、サイトへのアクセス方法を「インターネットから」に設定し、フォーム認証を有効にしておきます(Web.config を直接編集しても可)。
図 1 今回作成するページ
今回は、次の手順でパスワード変更機能を作成します。
ChangePassword コントロールを配置
コントロールのデザインを設定
ボタンやラベルの表示テキストを編集
リダイレクト先 URL を設定
実行
(1) ChangePassword コントロールを配置
最初に、ChangePassword コントロールを配置します(図2)。HTML ソースではこのような形で記述されることになります(図3)が、ページを整形する場合はこの <asp:ChangePassword ...> ~ </ asp:ChangePassword> の部分を崩さないよう注意してください。
図 2 ChangePassword コントロール
図 3 HTML ソース
(2) コントロールのデザインを設定
次に、ChangePassword コントロールに対してデザインを設定します。プロパティの「スタイル」グループ(図4)で細かい設定ができるほか、デザイナ上から「ChangePassword タスク」を展開し、[オートフォーマット] を利用することも可能です。今回は、オートフォーマットで「クラシック」を選択します(図5)。
図 4 スタイルに関するプロパティ
図 5 オートフォーマットによる整形
(3) ボタンやラベルの表示テキストを編集
必要に応じて、ボタンやラベルの表示テキストを変更します。そのために、プロパティの「表示」グループ内の値を編集します。最初に、 [パスワード:] ラベルの表示テキストを「現在のパスワード:」に変更するため、PasswordLabelText プロパティを編集します。続いて、変更完了画面のタイトルを「パスワードの変更完了」にするため、SuccessTitleText プロパティを編集します(図7)。完了画面の編集結果を確認するには、デザイナーから「ChangePassword タスク」を開き、「ビュー」で「正常に完了」を選びます(図7)。
図6 ラベルの表示テキストを変更
図 7 編集結果の確認
(4) リダイレクト先 URL を設定
パスワード変更が成功した後で [ 続行 ] ボタンをクリックしたときのリダイレクト先 URL は、ContinueDestinationPageUrl プロパティに指定します。また同様に、パスワード変更をキャンセルしたときにリダイレクトするページの URL は、CancelDestinationPageUrl プロパティに指定します。今回は、[ 続行 ] ボタンクリック時、キャンセル時とも「~/Default.aspx」を指定します(図8)。
図 8 リダイレクト先の設定
(5) 実行
以上で準備が整いました。あらかじめ設定したユーザー(ユーザー名「testUser」、パスワード「testUser01#」)でログインした状態から、PasswordRecover.aspx を開きます。ここで、現在のパスワードと、新しいパスワードを入力します(図9)。
図 9 新旧パスワードの入力
[ パスワードの変更 ] ボタンをクリックすると、パスワード変更処理が実行されます。古いパスワードが違っていたり、新しいパスワードの設定に問題があったりした場合は、エラーメッセージが表示されます(図10)。パスワード変更に成功した場合は、変更完了画面が表示されます(図11)。この変更完了画面の [ 続行 ] ボタンをクリックすると、Default.aspx へリダイレクトされます。
図 10 パスワード変更失敗
図 11 パスワード変更成功