名前の通り、HttpContextにアクセスるためのクラスである。
IHttpContextAccessor HttpContextAccessor
ASP.NET Core では、HttpContext
はリクエストごとに存在し、リクエストに関連する情報(例えば、リクエストの詳細、認証情報、セッションデータなど)を含んでいます。
しかし、ASP.NET Core の設計において、
HttpContextは依存注入(DI)コンテナを通じて直接注入されないため、
HttpContextAccessor` がそのギャップを埋めるために存在します。
使用上の注意
- HttpContextAccessor は、リクエストのスコープ内でのみ使用するべきです。リクエストの外部、例えばシングルトンサービス内で使用すると、予期しない動作やリークの原因となる可能性があります。
- すべてのシナリオで HttpContextAccessor を使用する必要はありません。例えば、コントローラのアクションメソッド内では、ControllerBase クラスから直接 HttpContext にアクセスできます。
参考資料