【发布时间】:2011-08-25 12:08:57
【问题描述】:
我正在使用 C# 开发一个 asp.NET 4.0 Web 应用程序。我目前正在使用会话进行身份验证,并且在注销时我正在清除会话。但是有一个问题,当用户按下返回时,他仍然能够看到缓存的页面。我想禁用此类页面的缓存,或确保已对其进行检查。
这样做的最佳方法是什么?如果我将服务器设置为不存储缓存信息,这会影响所有应用程序还是只会影响我的应用程序?
【问题讨论】:
标签: c# asp.net visual-studio-2010
我正在使用 C# 开发一个 asp.NET 4.0 Web 应用程序。我目前正在使用会话进行身份验证,并且在注销时我正在清除会话。但是有一个问题,当用户按下返回时,他仍然能够看到缓存的页面。我想禁用此类页面的缓存,或确保已对其进行检查。
这样做的最佳方法是什么?如果我将服务器设置为不存储缓存信息,这会影响所有应用程序还是只会影响我的应用程序?
【问题讨论】:
标签: c# asp.net visual-studio-2010
将此添加到page_load
Response.Cache.SetCacheability(HttpCacheability.NoCache);
这是唯一正确的答案,尽管重要的是要知道它只是对浏览器的请求以停止缓存 - 它不一定必须遵循。
这需要包含在您不希望用户“返回按钮”到的每个页面上。
【讨论】:
您可以在母版页的 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();
}
【讨论】: