2017-03-23 48 views
1

鑑於下列的控制器:ASP.net核心ResponseCache和RedirectToAction。如何緩存匿名響應?

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的/措施1/20」。會緩存響應嗎?

如果答案是肯定的,如何緩存匿名響應?

回答

0

在這裏顯示的代碼中,答案是否定的。 RedirectToAction將向您的站點發出單獨的請求(301重定向),該請求將完全獨立於第一個請求(到Action1)處理。

值得考慮響應緩存對非匿名用戶的影響,但在這種情況下,您的場景對於這些潛在影響是安全的。