情報応用演習Ⅰ(2024)

【T9a】簡易ブログソフトウェアの作成 Part.Ⅰ ~ 認証機能の組み込み(7/14)

プロジェクトタイプASP.NET Core Web アプリ(Model-View-Controller)
プロジェクト名T9a
ソリューション名PIT9
ターゲットフレームワーク.NET 8.0(長期的なサポート)
最上位レベルのステートメントを使用しない使用する(チェックオフ)
注意
  • 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
    • 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
    • プロジェクトの作成作業については準備作業を参照せよ.

9a-7. アカウント管理用コントローラーの設計

次にアカウント関連のための操作のためのコントローラーAccountsコントローラーを作成しよう. このコントローラーは前章で登場したAdminコントローラーと異なり,ログイン/ログアウトの 機能だけではなく,ユーザーの作成/ユーザー情報の編集/削除といった機能も持つ.

このコントローラーは「管理者ユーザー」でアクセスしたときと,「通常ユーザー」でアクセスしたときで 利用可能な機能や画面構成・画面遷移が微妙に異なる.「管理者ユーザー」はユーザーの作成や,ほかのユーザー情報の編集, 削除を行うことができるが,「通常ユーザー」は自分自身のユーザー情報の編集,削除(≒退会)しか行えないためである.

「管理者ユーザー」でアクセスした場合の画面イメージと画面遷移を_に示す.

「管理者ユーザー」でアクセスした場合のAccountsコントローラーの画面イメージ・画面遷移

ログイン/ログアウトのためのリンクやボタンは前章と同じようにすべてのページに表示することにする. _に対して「通常ユーザー」でアクセスした場合の画面イメージと画面遷移を _に示す.

「通常ユーザー」でアクセスした場合のAccountsコントローラーの画面イメージ・画面遷移

「通常ユーザー」と「管理者ユーザー」の差異は,以下の4点である.

  1. ログイン直後の遷移先
    • 「管理者ユーザー」→ユーザー一覧画面(Index)
    • 「通常ユーザー」→そのユーザーの詳細情報画面(UserDetails)
  2. アクセス許可
    • 「管理者ユーザー」→ユーザーの追加画面(AddUser)とユーザーの一覧画面(Index)にアクセスできる1
    • 「通常ユーザー」→上記の2つの画面にアクセスできない.
  3. ユーザー情報の編集画面(EditUser)
    • 「管理者ユーザー」→
      • 「通常ユーザー」の編集時:「新しいパスワード」(と確認)を入力するだけでパスワードを再設定できる.
      • 「管理者ユーザー」の編集時:ユーザー名を変更できない.
    • 「通常ユーザー」→「現在のパスワード」と「新しいパスワード」の両方を入力しないとパスワードを再設定できない.
  4. ユーザーの削除画面(DeleteUser)
    • 「管理者ユーザー」→「ユーザー ○○ を削除しますか?」とだけ表示される.
    • 「通常ユーザー」→上記に加えて作成したすべての記事が削除されるという旨の警告が表示される.

最終的に作成するAccountsコントローラーのアクションと,その権限/HTTPメソッドごとの機能を_にまとめる.

Accountsコントローラーの各アクションの概要
アクション権限GET メソッドでアクセスした際の機能POST メソッドでアクセスした際の機能
Index管理者ユーザーユーザー一覧の表示(なし)
通常ユーザー(アクセスできない)(なし)
匿名ユーザー(アクセスできない)(なし)
対応リストリスト9a-9-1(20~28行目)対応リスト : -
Login管理者ユーザーログインフォームの表示ログイン処理
通常ユーザーログインフォームの表示ログイン処理
匿名ユーザーログインフォームの表示ログイン処理
対応リストリスト9a-9-1(30~34行目)対応リストリスト9a-9-1(36~57行目)
Logout管理者ユーザー(なし)ログアウト処理
通常ユーザー(なし)ログアウト処理
匿名ユーザー(なし)ログアウト処理
対応リスト :-対応リストリスト9a-9-1(73~81行目)
LoginRoute管理者ユーザーログイン後の遷移先の振り分け(後述)(なし)
通常ユーザーログイン後の遷移先の振り分け(後述)(なし)
匿名ユーザー(アクセスできない)(なし)
対応リストリスト9a-12-3対応リスト : -
UserDetails管理者ユーザー任意のユーザーのユーザー情報の表示(なし)
通常ユーザー自身のユーザー情報の表示(なし)
匿名ユーザー(アクセスできない)(なし)
対応リストリスト9a-12-1対応リスト :-
AddUser管理者ユーザーユーザーの新規登録フォームの表示ユーザーの新規登録処理
通常ユーザー(アクセスできない)(アクセスできない)
匿名ユーザー(アクセスできない)(アクセスできない)
対応リストリスト9a-10-2対応リスト:リスト9a-12-4
EditUser管理者ユーザー任意のユーザーのユーザー情報の編集フォームの表示ユーザー情報の更新処理
通常ユーザー自身のユーザー情報の編集フォームの表示ユーザー情報の更新処理
匿名ユーザー(アクセスできない)(アクセスできない)
対応リストリスト9a-13-2対応リストリスト9a-13-3
DeleteUser管理者ユーザー任意の通常ユーザーの削除フォームの表示ユーザーの削除処理
通常ユーザー自身のユーザー情報の削除フォームの表示ユーザーの削除処理
匿名ユーザー(アクセスできない)(アクセスできない)
対応リストリスト9a-14-1対応リストリスト9a-14-2
AccessDenied管理者ユーザーアクセス拒否の表示(なし)
通常ユーザーアクセス拒否の表示(なし)
匿名ユーザーアクセス拒否の表示(なし)
対応リストリスト9a-9-1(83~87行目)対応リスト :-

  1. ただし「管理者ユーザー」は自分自身のユーザー情報の編集や削除はできない.これらを行えるのは「通常ユーザー」に対してのみである. ↩︎

Last updated on 2024-06-19
Published on 2024-06-19

Powered by Hugo. Theme by TechDoc. Designed by Thingsym.