У меня проблемы с настройкой AppendHeader, если я также использую фильтр авторизации. Я использую actionfilter для своих действий AJAX, который применяет Expires, Last-Modified, Cache-Control и Pragma (хотя во время тестирования я пытался включить его в сам метод действия без изменений в результатах).
Если у меня нет фильтра авторизации, заголовки работают нормально. После добавления фильтра заголовки, которые я пытался добавить, удаляются.
Заголовки, которые я хочу добавить
Response.AppendHeader("Expires", "Sun, 19 Nov 1978 05:00:00 GMT");
Response.AppendHeader("Last-Modified", String.Format("{0:r}", DateTime.Now));
Response.AppendHeader("Cache-Control", "no-store, no-cache, must-revalidate");
Response.AppendHeader("Cache-Control", "post-check=0, pre-check=0");
Response.AppendHeader("Pragma", "no-cache");
Пример заголовков с правильной страницы:
Server ASP.NET Development Server/9.0.0.0
Date Mon, 14 Jun 2010 17:22:24 GMT
X-AspNet-Version 2.0.50727
X-AspNetMvc-Version 2.0
Pragma no-cache
Expires Sun, 19 Nov 1978 05:00:00 GMT
Last-Modified Mon, 14 Jun 2010 18:22:24 GMT
Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Content-Type text/html; charset=utf-8
Content-Length 352
Connection Close
И с неправильной страницы:
Server ASP.NET Development Server/9.0.0.0
Date Mon, 14 Jun 2010 17:27:34 GMT
X-AspNet-Version 2.0.50727
X-AspNetMvc-Version 2.0
Pragma no-cache, no-cache
Cache-Control private, s-maxage=0
Content-Type text/html; charset=utf-8
Content-Length 4937
Connection Close