カテゴリ: ASP.NET 更新日: 2026/04/03

ASP.NET CoreのCookie認証を完全ガイド!初心者でもわかるログインの仕組み

Cookie認証をASP.NET Coreで実装する方法
Cookie認証をASP.NET Coreで実装する方法

先生と生徒の会話形式で理解しよう

生徒

「Webサイトでログインして、次にページを開いてもログイン状態が続くのはなぜですか?」

先生

「それはCookie認証という仕組みを使って、ログインした情報をブラウザに覚えてもらっているからです。」

生徒

「Cookieって聞いたことはありますが、ASP.NET Coreではどうやって使うんですか?」

先生

「ASP.NET Coreには、Cookie認証を簡単に実装できる仕組みが用意されています。順番に見ていきましょう。」

1. Cookie認証とは?ASP.NET Coreでの役割

1. Cookie認証とは?ASP.NET Coreでの役割
1. Cookie認証とは?ASP.NET Coreでの役割

Cookie認証とは、ログインしたことをブラウザに保存しておく仕組みです。Webサイトはページを移動するたびに、基本的には毎回新しくアクセスされます。そのため、何もしないと「誰がアクセスしているか」を忘れてしまいます。

そこで使われるのがCookieです。Cookieは、ブラウザに小さなメモを保存するような仕組みで、「この人はログイン済み」という情報を記録できます。ASP.NET Coreでは、このCookieを使った認証機能が標準で用意されており、安全にログイン機能を作ることができます。

2. ASP.NET CoreでCookie認証を使うメリット

2. ASP.NET CoreでCookie認証を使うメリット
2. ASP.NET CoreでCookie認証を使うメリット

ASP.NET CoreのCookie認証は、初心者にも扱いやすいのが特徴です。特別な暗号処理を自分で書かなくても、フレームワークが自動で安全に管理してくれます。

また、企業の業務システムや管理画面など、「ログインして使うWebアプリケーション」でよく利用されます。OAuthやJWTのような少し難しい認証方式を学ぶ前に、まずはCookie認証を理解することが大切です。

3. Cookie認証の基本的な流れ

3. Cookie認証の基本的な流れ
3. Cookie認証の基本的な流れ

Cookie認証の流れはとてもシンプルです。まず、ユーザーがログイン画面でIDとパスワードを入力します。次に、サーバー側で「正しいかどうか」を確認します。

正しい場合、サーバーは「ログイン成功」の証明書のような情報を作り、それをCookieとしてブラウザに渡します。以降のアクセスでは、ブラウザがそのCookieを毎回送るため、サーバーは「この人はログイン済み」と判断できます。

4. ASP.NET CoreでCookie認証を有効にする設定

4. ASP.NET CoreでCookie認証を有効にする設定
4. ASP.NET CoreでCookie認証を有効にする設定

まずは、ASP.NET CoreでCookie認証を使うための設定を行います。これはProgram.csで行います。難しく見えますが、「Cookie認証を使います」と宣言しているだけです。


using Microsoft.AspNetCore.Authentication.Cookies;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.LoginPath = "/Account/Login";
    });

var app = builder.Build();

app.UseAuthentication();
app.UseAuthorization();

app.MapControllers();
app.Run();

LoginPathは、「ログインしていない人がアクセスしたときに表示する画面」を指定しています。これにより、自動的にログイン画面へ誘導されます。

5. ログイン処理でCookieを発行する方法

5. ログイン処理でCookieを発行する方法
5. ログイン処理でCookieを発行する方法

次に、実際にログインしたときにCookieを作成する処理です。コントローラーでログイン成功時にサインイン処理を行います。


using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.Cookies;
using System.Security.Claims;

public async Task<IActionResult> Login()
{
    var claims = new List<Claim>
    {
        new Claim(ClaimTypes.Name, "sampleUser")
    };

    var identity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
    var principal = new ClaimsPrincipal(identity);

    await HttpContext.SignInAsync(
        CookieAuthenticationDefaults.AuthenticationScheme,
        principal
    );

    return RedirectToAction("Index", "Home");
}

Claimとは、「このユーザーは誰か」という情報を表す名札のようなものです。ここではユーザー名だけを保存していますが、必要に応じて増やすこともできます。

6. 認証が必要なページを制限する方法

6. 認証が必要なページを制限する方法
6. 認証が必要なページを制限する方法

ログインしていない人に見せたくないページには、Authorize属性を付けます。これだけで、ログイン済みの人だけがアクセスできるようになります。


using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;

[Authorize]
public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}

もしログインしていない状態でアクセスすると、自動的にログイン画面へ移動します。これがCookie認証の便利なポイントです。

7. ログアウト処理の実装方法

7. ログアウト処理の実装方法
7. ログアウト処理の実装方法

最後にログアウト処理です。ログアウトでは、保存されているCookieを削除します。これにより、ログイン状態が解除されます。


public async Task<IActionResult> Logout()
{
    await HttpContext.SignOutAsync(
        CookieAuthenticationDefaults.AuthenticationScheme
    );

    return RedirectToAction("Login", "Account");
}

この処理を実行すると、次のページアクセスからはログインしていない状態になります。ブラウザに保存されていたメモを消すイメージです。

8. Cookie認証を理解することの重要性

8. Cookie認証を理解することの重要性
8. Cookie認証を理解することの重要性

Cookie認証は、ASP.NET CoreでWebアプリケーションを作る上での基本中の基本です。ログイン機能は多くのシステムで必要になるため、この仕組みを理解しておくことで、実用的なアプリケーションを作れるようになります。

難しそうに見えても、実際は「ログイン情報をCookieに保存して確認する」というシンプルな考え方です。まずはこの仕組みをしっかり理解することが大切です。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NETでHTTPS(SSL/TLS)を導入して安全なWebサイトを作ろう!初心者でもわかる完全ガイド
New2
VB.NET
VB.NETで日付と時間を比較・計算する方法!CompareとSubtractを完全解説
New3
VB.NET
VB.NETの構文ルールまとめ!インデント・改行・予約語など初心者が最初に覚えるべきポイント
New4
ASP.NET
ASP.NET MVCアプリをデバッグする方法を完全解説!初心者でも安心して原因を見つけられる入門ガイド
人気記事
No.1
Java&Spring記事人気No1
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.2
Java&Spring記事人気No2
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.3
Java&Spring記事人気No3
VB.NET
VB.NETで日付を加算・減算する方法を完全ガイド!AddDaysやAddMonthsの使い方
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.6
Java&Spring記事人気No6
VB.NET
VB.NETのFunctionとSubの違いをわかりやすく解説!初心者向けガイド
No.7
Java&Spring記事人気No7
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.8
Java&Spring記事人気No8
VB.NET
VB.NETで戻り値を返す関数の書き方を初心者向けに解説