Establecer el control de caché para las páginas aspx

Tengo un sitio web asp.net y me gustaría que el navegador del cliente almacene en caché la salida HTML de las páginas aspx una vez que las reciba. Después de leer alrededor, descubrí que IIS7 no es compatible con esta lista, por lo que agregué el siguiente código a laOnLoad evento de mi página principal maestra:

protected override void OnLoad(EventArgs e) {
    DateTime dt = DateTime.Now.AddDays(10);
    Response.Cache.SetCacheability(HttpCacheability.Public);
    Response.Cache.SetExpires(dt);
    Response.Cache.SetMaxAge(new TimeSpan(dt.Ticks - DateTime.Now.Ticks));

    base.OnLoad(e);
}

Con esto todavía obtengo lo siguiente en el encabezado de respuesta:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Expires: -1
Vary: Accept-Encoding
Date: Fri, 05 Jul 2013 14:25:03 GMT
Content-Length: 10201

Tal vez hice algo hace mucho tiempo para anular esto, pero no puedo, por mi vida recordar si hice y lo que hice. No encontrar ninguna información sobre esto al buscar en Google me hace pensar que tal vezcache-control para las páginas aspx no es una buena idea ... pero necesito esto para que cloudfront (un CDN) permita la entrega de todo el sitio.

Respuestas a la pregunta(1)

Su respuesta a la pregunta