ASP.NET Web APIで開発している際、パフォーマンスを上げるためにリクエスト中で取得/生成した値をキャッシュして使い回したいケースがあります。特にWeb APIにはHTTP Message Handlerという機構があるので、外側のレイヤー (Handler) で共通処理として認証を行ったりアクセスログを出力したりすることが多々あります。このとき取得したユーザー情報などをキャッシュしておけば、実処理である内側のコントローラーで効率的に再利用することができるようになります。パフォーマンスは良くて困ることはないですし、しかも簡単に実装できるのでオススメです。 HttpContextを取得する まず、ASP.NET Web APIのリクエスト情報であるHttpRequestMessageからHttpContextを取得します。これはPropertiesプロパティに "MS_HttpCo