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 Web Forms 1

この記事ではマイクロソフト社が開発・提供しているWebアプリケーション開発用フレームワーク「ASP.NET」の「Web Forms」を「MVC」と比較しながらメリットやデメリット等を含めて解説していき ...

C#VB 2

今回はC#(ver.7.0以降)、VB(ver. 15以降)でforeachループ内で繰り返し回数を参照する方法について解説していきます。 従来の記述方法とよりスマートに記述する方法の2通りを以下にな ...

3

この記事ではSQL Serverで使用できる「STUFF」という便利な関数の使い方について、解説していきます! 他にも便利な関数があれば、別記事にて使用方法を解説していきたいと思います! STUFF ...

4

今回はSQL ServerでデータをXML形式で取得する方法について書いていきます。 FOR XML PATH SQL Serverには「FOR XML PATH」という関数があって、SQL分の末尾に ...

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