例えば、社内 Web アプリなら SSO 済みのセッション情報や環境変数などからログインしているユーザーを特定して、サイトを作り込んだりしています。今回は、.NET 8 でログインフォーム付きの Web アプリを作成して、認証が必要な Web ページの動きを試してみました。
.NET 8 でログインフォーム付きの Web アプリを作成
$ dotnet --version
8.0.100
$ dotnet new webapp --auth Individual -o WebApp1
$ cd WebApp1
$ dotnet run
Privacy ページの状態を確認
ログインしていない状態でも、Privacy ページの内容が確認できます。

Privacy ページのソースコードを表示
Ctrl+C
で dotnet run
を一旦止めて、VSCode でソースコードを開きます。
$ code Pages/Privacy.cshtml.cs
変更前のソースコードです。
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace WebApp1.Pages;
public class PrivacyModel : PageModel
{
private readonly ILogger<PrivacyModel> _logger;
public PrivacyModel(ILogger<PrivacyModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
}
Privacy ページを認証が必要なページに変更
using Microsoft.AspNetCore.Authorization;
と [Authorize]
を追加します。
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Authorization;
namespace WebApp1.Pages;
[Authorize]
public class PrivacyModel : PageModel
{
private readonly ILogger<PrivacyModel> _logger;
public PrivacyModel(ILogger<PrivacyModel> logger)
{
_logger = logger;
}
public void OnGet()
{
}
}
もう一度 Privacy ページにアクセスして状態を確認
dotnet run
で起動後、Privacy を表示した状態は、ログインページに自動でリダイレクトされています。

別途 Register
で登録しておいたユーザー情報でログインすると Privacy ページの内容が表示できます。
