我正在使用C#开发asp.NET 4.0 Web应用程序。我目前使用会话进行身份验证,在注销时我正在清除会话。但是当用户按下时会出现问题,他仍然可以看到缓存的页面。我想禁用这些页面的缓存,或确保检查它。
这样做的最佳方式是什么?如果我将服务器设置为不存储缓存信息,这会影响所有应用程序还是只是我的应用程序?
答案 0 :(得分:7)
在page_load
Response.Cache.SetCacheability(HttpCacheability.NoCache);
这是唯一真实的答案,尽管重要的是要知道浏览器只有一个请求来停止缓存 - 它不一定要遵循。
这需要包含在您不希望用户“返回按钮”的每个页面上。
答案 1 :(得分:0)
您可以在主页面的Page_Init中添加以下行
protected void Page_Init(object sender, EventArgs e)
{
Response.Cache.SetExpires(DateTime.UtcNow.AddMinutes(-1));
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
}