2017-03-23 6 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)とは完全に独立して処理されます。

レスポンスキャッシングの匿名ユーザー以外への影響を考慮する価値はありますが、この場合、シナリオはこれらの潜在的な影響から安全です。

関連する問題