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

问题描述 投票:0回答:1

我有ASP.NET Core 2.2应用程序。对于用户单击浏览器的后退按钮的情况,我已经在所有控制器上设置了no-store=true

[ResponseCache(NoStore = true)]
public class MyController:Controller
{
}

并且在startup.cs中,我正在添加AutoValidateAntiforgeryTokenAttribute

services.AddMvc(options =>
            {   
                options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());                

            })

但是,对于每个请求,我都会看到一条警告记录

'Cache-Control'和'Pragma'标头已被覆盖并设置分别设置为“无缓存,无存储”和“无缓存”,以防止缓存这个回应。使用伪造的任何回应都不应已缓存。

我知道使用反伪造的任何响应都不应被缓存,并且我确实设置了NoStore=true。那么为什么会有警告。

如果我删除[ResponseCache(NoStore = true)],则警告消失了。但是,在用户单击后退按钮的情况下,我需要该属性]

我有ASP.NET Core 2.2应用程序。我为用户单击浏览器的后退按钮[ResponseCache(NoStore = true)]公共类MyController:...

asp.net-core asp.net-core-mvc asp.net-core-2.0
1个回答
0
投票

NoStore还不够。该警告是默认防伪逻辑检查“ no-cache”的“ cache-control”和“ pragma”标头值的结果。如果'cache-control'标头不包含'no-cache'或'pragma'标头不是'no-cache'或为空,则创建该警告。

© www.soinside.com 2019 - 2024. All rights reserved.