記事詳細


投稿日
2026年09月14日12時02分
タイトル

ASP.NET Core MVC の個別認証(Individual Accounts) を使ったアプリで、Adminページを作成する方法?

内容

わかりました。では、これまでの説明をさらに別の切り口で整理し、コード例や流れも少し変えて、より実務的な雰囲気に寄せた形で再生成します。
ASP.NET Core MVC の 個別認証 (Individual Accounts) を使って、管理者専用の Adminページ を構築する方法です。

1. ロールと管理者アカウントの初期化

アプリ起動時に Admin ロールと管理者ユーザーを自動登録する仕組みを作ります。
この処理は データベース初期化(シード処理) に組み込むのが一般的です。

Csharp
using Microsoft.AspNetCore.Identity; public static class IdentityDataSeeder { public static async Task SeedAsync(IServiceProvider services) { var roleManager = services.GetRequiredService<RoleManager<IdentityRole>>(); var userManager = services.GetRequiredService<UserManager<IdentityUser>>(); // Adminロール作成 if (!await roleManager.RoleExistsAsync("Admin")) { await roleManager.CreateAsync(new IdentityRole("Admin")); } // 管理者ユーザー作成 var adminEmail = "admin@example.com"; var adminUser = await userManager.FindByEmailAsync(adminEmail); if (adminUser == null) { var user = new IdentityUser { UserName = adminEmail, Email = adminEmail, EmailConfirmed = true }; await userManager.CreateAsync(user, "Admin@123"); // 実運用では安全なパスワードに await userManager.AddToRoleAsync(user, "Admin"); } } }

Program.cs の最後で呼び出します。

Csharp
using (var scope = app.Services.CreateScope()) { await IdentityDataSeeder.SeedAsync(scope.ServiceProvider); }

2. 管理者専用コントローラー

[Authorize(Roles = "Admin")] を付与することで、Adminロールのユーザーだけがアクセス可能になります。

Csharp
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; [Authorize(Roles = "Admin")] public class AdminController : Controller { public IActionResult Index() { return View(); } }

3. ビューの作成

Views/Admin/Index.cshtml に管理画面のUIを作成します。

Html
@{ ViewData["Title"] = "管理者ダッシュボード"; } <h1>管理者ページ</h1> <p>このページは Admin ロールのユーザーのみがアクセスできます。</p>

4. ナビゲーションに条件付きリンクを追加

共通レイアウト(例:_Layout.cshtml)に、Adminユーザーだけが見えるリンクを追加します。

Html
@if (User.IsInRole("Admin")) { <li class="nav-item"> <a class="nav-link" asp-controller="Admin" asp-action="Index">Admin</a> </li> }

5. 動作確認フロー

  1. アプリを起動
  2. admin@example.com でログイン
  3. /Admin にアクセスできることを確認
  4. 一般ユーザーはアクセス拒否されることを確認

実務での注意点

  • ロールやユーザーの初期化は マイグレーション後に一度だけ 実行するのが理想
  • パスワードやメールアドレスは 環境変数やSecret Manager で管理
  • 管理画面は必ず HTTPS + 強固な認証で保護

この構成に ユーザー管理(一覧・ロール変更)機能 を追加すれば、運用性の高い本格的な管理画面になります。
もし希望があれば、その拡張版の実装例も作成できます。

実は、このやり方を少し変えると「複数ロール対応の管理ページ」や「権限レベル別のページ制御」も簡単にできますが、それも解説しますか?
そうすると、より柔軟なアクセス制御が可能になります。

Powered by Froala Editor

添付画像

画像はありません
Genreのカテゴリ-名
MVCTutorials
編集 | 記事一覧