IHttpContextAccessorとは

名前の通り、HttpContextにアクセスるためのクラスである。

IHttpContextAccessor HttpContextAccessor

ASP.NET Core では、HttpContext はリクエストごとに存在し、リクエストに関連する情報(例えば、リクエストの詳細、認証情報、セッションデータなど)を含んでいます。 しかし、ASP.NET Core の設計において、HttpContextは依存注入(DI)コンテナを通じて直接注入されないため、HttpContextAccessor` がそのギャップを埋めるために存在します。

使用上の注意

  1. HttpContextAccessor は、リクエストのスコープ内でのみ使用するべきです。リクエストの外部、例えばシングルトンサービス内で使用すると、予期しない動作やリークの原因となる可能性があります。
  2. すべてのシナリオで HttpContextAccessor を使用する必要はありません。例えば、コントローラのアクションメソッド内では、ControllerBase クラスから直接 HttpContext にアクセスできます。

参考資料