Caching ASP.net核心响应缓存和重定向操作。如何缓存仅匿名响应?
给定以下控制器:Caching ASP.net核心响应缓存和重定向操作。如何缓存仅匿名响应?,caching,asp.net-core,redirecttoaction,responsecache,Caching,Asp.net Core,Redirecttoaction,Responsecache,给定以下控制器: public class MyController : Controller { [AllowAnonymous] [ResponseCache(VaryByQueryKeys = new string[] { "id" }] public async IActionResult Action1(string id) { if (User.Identity.IsAuthenticated) return Re
public class MyController : Controller
{
[AllowAnonymous]
[ResponseCache(VaryByQueryKeys = new string[] { "id" }]
public async IActionResult Action1(string id)
{
if (User.Identity.IsAuthenticated)
return RedirectToAction("Action2", new {id = id});
return View();
}
[Authorize]
public async IActionResult Action2(string id)
{
return View();
}
}
假设经过身份验证的用户导航到“/Mycontroller/Action1/20”。是否缓存响应
如果答案是“是”,如何缓存仅匿名响应?在这里显示的代码中,答案是“否”。RedirectToAction将向您的站点发出一个单独的请求(301重定向),该请求将完全独立于第一个请求(到Action1)进行处理
值得考虑响应缓存对非匿名用户的影响,但在这种情况下,您的场景将不会受到这些潜在影响。在这里显示的代码中,答案是否定的。RedirectToAction将向您的站点发出单独的请求(301重定向),这将完全独立于第一个请求(到Action1)进行处理 值得考虑响应缓存对非匿名用户的影响,但在这种情况下,您的场景将不会受到这些潜在影响