Pregunta

¿Funcionará el siguiente código si el reloj del servidor está adelantado al reloj del cliente?

Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1))

EDITAR:La razón por la que pregunto es que en una de nuestras aplicaciones web algunos usuarios afirman que están viendo las páginas (números de cuenta, etc.) de un usuario que usó esa máquina anteriormente.Sin embargo, utilizamos la línea anterior y otras para "evitar" que esto suceda.

¿Fue útil?

Solución

Esta pregunta cubre cómo asegurarse de que una página web no esté almacenada en caché.Parece que debe configurar varias propiedades para garantizar que una página web no se almacene en caché en todos los navegadores.

Otros consejos

Su problema podría deberse a que el navegador recuerda los datos ingresados ​​en los campos del formulario.Puedes desactivar esto así:

<input autocomplete="off">

Por lo que puedo decir, el navegador comprobará la fecha de caducidad con el reloj local (aunque tendrá en cuenta la zona horaria), por lo que es posible que el código de su pregunta no funcione como esperaba si el reloj del cliente no es exacto.Lo más común es que esto suceda cuando su hora parece correcta pero está configurada en la zona horaria incorrecta, lo que significa que las marcas de tiempo UTC en realidad están desviadas por varias horas.

Podrías intentar establecer una marca de tiempo mucho más antigua, por ejemplo:0000 1 de enero de 1970 GMT (época)

Creo que el código que tienes debería funcionar con el almacenamiento en caché del lado del servidor, pero puedes desactivarlo más explícitamente con:

Response.Cache.SetNoServerCaching();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top