首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加ResponseCache属性时记录的缓存控制警告

添加ResponseCache属性时记录的缓存控制警告
EN

Stack Overflow用户
提问于 2019-07-31 21:19:37
回答 1查看 1.4K关注 0票数 5

我有ASP.NET Core2.2应用程序。当用户单击浏览器的后退按钮时,我已经在所有控制器上设置了no-store=true

代码语言:javascript
复制
[ResponseCache(NoStore = true)]
public class MyController:Controller
{
}

在startup.cs中,我添加了AutoValidateAntiforgeryTokenAttribute

代码语言:javascript
复制
services.AddMvc(options =>
            {   
                options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());                

            })

但是,对于每一个请求,我都会看到一个警告被记录下来。

“cache-Control”和“Pragma”报头已被重写,并分别设置为“无缓存、无存储”和“无缓存”,以防止缓存此响应。任何使用防伪的响应都不应该被缓存。

我知道任何使用防伪的响应都不应该被缓存,而且我确实设置了NoStore=true。所以为什么会有警告。

如果我删除了[ResponseCache(NoStore = true)],那么警告就消失了。但是,在用户单击“上一步”按钮的情况下,我需要该属性。

EN

回答 1

Stack Overflow用户

发布于 2019-11-28 17:15:35

NoStore是不够的。该警告是默认的防伪逻辑检查‘缓存控制’和‘语用’头值的‘无缓存’的结果。如果“缓存控制”报头不包含“无缓存”或“务实”报头是“非缓存”或“空”,则会创建警告。

始终必须在缓存设置中包括位置:

代码语言:javascript
复制
[ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)]

这将将“缓存控制”标题设置为“无存储、无缓存”,并将“务实”标题设置为“无缓存”,并且不会创建警告。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57298992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档