我有一个ASP.NET页面,其中动态设置了iframe src:
<iframe id="specialframe" src="<%= IframeSrc %>"></iframe>
代码隐藏:
internal string IframeSrc { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
IframeSrc = SpecialService.GetNewUrl();
}
SpecialService
是第三方服务,在调用时会返回一次性使用的URL,其类似于:
http://www.specialservice.com/oneTimeUseId=fh8396123lkjufgh49
出于安全考虑,此ID只能在到期前使用一次。但是,这会导致问题。
我第一次在浏览器中显示页面时,会正确加载iframe。但是,如果我点击刷新,我会在iframe中收到错误消息,因为它尝试使用相同的一次性使用ID。如果我 Ctrl + F5 刷新以强制清除缓存,它可以正常工作,但我不能告诉我的用户每次都这样做。
我的问题是,是否可以强制浏览器永远不使用缓存,始终从服务器请求新的副本?
答案 0 :(得分:0)
您需要设置过期并正确缓存您的页面,以便浏览器始终必须从服务器请求页面。
这个问题可能是一个好的开始http://msdn.microsoft.com/en-us/library/y18he7cw.aspx。
你需要可缓存性(可能在过去设置过期,也可能是SetMaxAge):
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.Now.AddMinutes(-30));