我有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:...
NoStore
还不够。该警告是默认防伪逻辑检查“ no-cache”的“ cache-control”和“ pragma”标头值的结果。如果'cache-control'标头不包含'no-cache'或'pragma'标头不是'no-cache'或为空,则创建该警告。