如果服务器上的时钟领先于客户端上的时钟,下面的代码是否有效?

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

编辑:我问的原因是在我们的一个网络应用程序上,一些用户声称他们看到了以前使用过该机器的用户的页面(帐号等)。然而,我们使用上面的行和其他行来“阻止”这种情况的发生。

有帮助吗?

解决方案

这个问题 涵盖确保网页不被缓存。似乎您必须设置多个属性以确保网页不会在所有浏览器上缓存。

其他提示

您的问题可能是由浏览器记住表单字段中输入的数据引起的。您可以像这样关闭它:

<input autocomplete="off">

据我所知,浏览器将根据本地时钟检查到期日期(尽管它会考虑时区),因此如果客户端的时钟不准确,您问题中的代码可能无法按您的预期工作。最常见的情况是,当时间看起来正确但设置为错误的时区时会发生这种情况,这意味着 UTC 时间戳实际上落后了几个小时。

您可以尝试设置一个更旧的时间戳,例如:0000 1970 年 1 月 1 日 GMT(纪元)

我认为您拥有的代码应该与服务器端缓存一起使用,但您可以更明确地禁用它:

Response.Cache.SetNoServerCaching();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top