ASP.NET プログラミング

【 ASP.NET Core 】Cookie認証 有効期限 (タイムアウト) の設定方法

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。

PC picture

Cookieの有効期限について

Cookieには通常はタイムアウト(有効期限)を設定します。

基本的に有効期限を設定していない場合は、ブラウザを閉じてしまった時点でCookieが消えてしまいますので、有効期限を設定する必要があります。

Cookieの有効期限設定の実装方法

Cookieの有効期限設定は、Program.csの中のCookie認証設定のオプションとして付与する形で実装を行います。

ちなみに、Cookie認証の実装方法はこちらの記事で解説しています。

var builder = WebApplication.CreateBuilder(args);

// Cookie による認証スキームを追加する
builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(options =>
    {
        options.SlidingExpiration = true;
        options.Events.OnRedirectToLogin = cxt =>
        {
            cxt.Response.StatusCode = StatusCodes.Status401Unauthorized;
            return Task.CompletedTask;
        };
        options.ExpireTimeSpan = TimeSpan.FromMinutes(480);
    });


options.ExpireTimeSpan = TimeSpan.FromMinutes(480);

の記述でCookieの有効期限を設定していて、FromMinutesの引数に期限となる数値を渡しています。
例の場合だと480分なので、有効期限は8時間となります。

また、options.SlidingExpiration = true;
という記述に関してですが、slidingExpiration が true になっている場合、
FromMinutesで指定した期限の半分を過ぎたCookieを持った状態でアクセスされた時に、有効期限を更新したCookieをアクセス元に渡すことができます。

例の場合だと、有効期限である8時間の半分=4時間を過ぎてしまったCookieの時は、有効期限は8時間に更新されます。

ASP.NET おすすめ入門講座

3つのWebアプリケーションの開発を通して、ASP.NETについて基礎から学べるおすすめの入門講座がこちら☟

【入門者向け】ASP.NET MVCでWebアプリ開発のノウハウを学ぼう!

icon

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

-ASP.NET, プログラミング
-, ,