我们已经在我们的[ResponseCache(NoStore = true)]操作中使用了AccountController.Login。
[HttpGet]
[ResponseCache(NoStore = true)]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
    ViewData["ReturnUrl"] = returnUrl;
    return View();
}根据文件:
NoStore覆盖大多数其他属性。当此属性设置为true时,Cache-Control头将被设置为"no-store"。
在一个新的私有Firefox窗口中,当我们导航到~/Account/Login时,我们会收到以下响应头。
Cache-Control:"no-cache"
Content-Type:"text/html; charset=utf-8"
Date:"Mon, 26 Dec 2016 21:50:27 GMT"
Pragma:"no-cache"
Server:"Kestrel"
Transfer-Encoding:"chunked"我们正在使用ASP.NET Core1.1.0。如何将Cache-Control头设置为no-store
发布于 2016-12-27 01:04:09
问题是ASP.NET核心防伪对所有用户集标头进行核武,并添加自己的。为了克服这个问题,我们添加了我们自己的IHtmlGenerator。
// Startup.cs
services.AddSingleton<
    Microsoft.AspNetCore.Mvc.ViewFeatures.IHtmlGenerator, 
    OurHacks.HtmlGeneratorHack>();
// HtmlGeneratorHack.cs (subsclasses DefaultHtmlGenerator)
public override IHtmlContent GenerateAntiforgery(ViewContext viewContext)
{
    var result = base.GenerateAntiforgery(viewContext);
    viewContext
        .HttpContext
        .Response
        .Headers[HeaderNames.CacheControl] 
            = "no-cache, max-age=0, must-revalidate, no-store";
     return result;
}发布于 2017-06-16 20:39:33
任何实现表单标记帮助程序的页面,即asp-action、asp-控制器,都将清除缓存控制设置。我只是补充这一点,因为上面的答案可能还不清楚。
这是令人难以置信的沮丧,我希望这个答案能帮助到某人。
https://stackoverflow.com/questions/41336684
复制相似问题