Кажется, что кеш сессии является подходящим механизмом кеширования. Кэш сеанса является отказоустойчивым кешем объектов.
Вставка объекта
Session["Username"] = "Matt";
Чтение объекта
string username = (string)Session["Username"];
Удаление объекта
Session.Remove("Username");
Я говорю отказоустойчивость, потому что если значение с указанным вами ключом не существует в кэше сеанса, оно не будет проходить через исключение, оно будет возвращать ноль. Вы должны учитывать это при реализации вашего кода.
Стоит отметить, что если вы используете Sql Server или State Server, объекты, которые вы можете поместить в кеш, должны быть сериализуемыми.