gpt4 book ai didi

asp.net - 设置 ASP.NET 缓存控制 header

转载 作者:行者123 更新时间:2023-12-02 12:18:00 25 4
gpt4 key购买 nike

在我的 asp.net 表单应用程序中。我正在尝试阻止某些页面的缓存。为此,我使用 Response.AppendHeader 设置了一系列缓存控制 header 例如

protected override void OnLoad(Eventargs e) {...Response.ClearHeaders();Response.AppendHeader("Cache-Control","no-cache");....base.OnLoad(e);}

问题是,当我查看我的网站并查看 Firefox 控制台中的“网络”选项卡以查看请求/响应 header 时,我看到如下行为:

  1. page1.aspx 的 POST 请求/响应,触发重定向(到 page2.aspx)这里的响应包含正确的 header 。

  2. page2.aspx 的 GET 请求/响应关联的响应具有缓存控制 header ,只有一个值“pre-check=0”

第二个请求似乎允许页面进行缓存。注意:page1.aspx 和 page2.aspx 都具有我上面描述的 OnLoad 逻辑。另外,如果我对 page2.aspx 采取一些操作,POST 响应将再次具有正确的 header 。

我在这里缺少什么?我的期望是,OnLoad 中的逻辑应该意味着我总是在响应中获取 header ,因此“总是”获取页面的当前版本?

我看到的是 Firefox 正在加载该页面的缓存版本。

我正在考虑在请求网址中创建一个随机标识符来强制执行此操作,但这似乎有点严厉。

-----更新-----看来,这可能与“OnLoad”中的缓存代码有关。我已将这些 header 添加到页面的 Page_Load() 中,它工作正常吗?有任何想法。

最佳答案

尝试将 Response.AppendHeader("Cache-Control","no-cache"); 替换为

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();

并确保您没有 @ OutputCache directive并且不是explicitly preventing cache control 。请参阅this MSDN page on SetCacheabilitySetNoStore .

关于asp.net - 设置 ASP.NET 缓存控制 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com