Насколько я могу судить, браузер будет проверять дату истечения по местным часам (хотя он будет учитывать часовой пояс), поэтому код в вашем вопросе может работать не так, как вы ожидаете, если часы клиента неточны , Чаще всего это происходит, когда их время выглядит правильно, но установлено неверное значение часового пояса, что означает, что временные метки UTC фактически истекают на несколько часов.
Вы можете попробовать установить более старую временную метку, скажем: 0000 1 января 1970 г. по Гринвичу (эпоха)
Я думаю, что ваш код должен работать с кэшированием на стороне сервера, но вы можете более явно отключить его с помощью:
Response.Cache.SetNoServerCaching();