2017-03-23 2 views
1

die Folgesteuerung Gegeben:ASP.net Core ResponseCache und RedirectToAction. Wie können nur anonyme Antworten zwischengespeichert werden?

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(); 
    } 
} 

Angenommen, ein authentifizierter Benutzer zu "/ MyController/Action1/20" navigiert. Wird die Antwort zwischengespeichert?

Wenn die Antwort ja lautet, wie können nur anonyme Antworten zwischengespeichert werden?

Antwort

0

In dem Code, den Sie hier zeigen, ist die Antwort nein. Die RedirectToAction wird eine separate Anfrage (eine 301-Weiterleitung) an Ihre Site senden, die völlig unabhängig von der ersten Anfrage (an Action1) behandelt wird.

Es lohnt sich, die Auswirkungen des Response-Cachings auf nicht anonyme Benutzer zu betrachten, aber in diesem Fall wäre Ihr Szenario vor diesen potenziellen Auswirkungen sicher.

Verwandte Themen