网页缓存设置过期
时间:2020-03-05 18:51:44 来源:igfitidea点击:
如果服务器上的时钟早于客户端上的时钟,下面的代码是否可以工作?
Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1))
编辑:我问的原因是在我们的一个Web应用程序上,一些用户声称他们正在查看以前使用该计算机的用户的页面(帐号等)。但是,我们使用上面的代码行和其他代码来"阻止"这种情况的发生。
解决方案
回答
这个问题涵盖了确保网页不被缓存。看来我们必须设置几个属性以确保网页不会在所有浏览器中缓存。
回答
问题可能是由浏览器记住在表单字段中输入的数据引起的。我们可以像这样关闭它:
<input autocomplete="off">
回答
据我所知,浏览器将根据本地时钟检查到期日期(尽管它会考虑时区),因此如果客户端的时钟不正确,问题中的代码可能无法正常运行。最常见的情况是,这种情况发生在他们的时间看起来正确但设置为错误的时区时,这意味着UTC时间戳实际上已经过了几个小时。
我们可以尝试设置更旧的时间戳,例如:0000格林尼治标准时间1970年1月1日(时代)
我认为我们拥有的代码应该可以在服务器端缓存中使用,但是我们可以通过以下方式更明确地禁用它:
Response.Cache.SetNoServerCaching();