Jak wyłączyć buforowanie danych wyjściowych dla uwierzytelnionych użytkowników w ASP.NET MVC?

Mam aplikację ASP.NET MVC. Muszę jednak buforować niektóre stronytylko dla nieuwierzytelnionych użytkowników.

Próbowałem użyćVaryByCustom="user" z następującymiGetVaryByCustomString realizacja:

public override string GetVaryByCustomString(HttpContext context, string custom)
{
  if (custom == "user")
  {
      if (context.User.Identity.IsAuthenticated)
      {
        return context.User.Identity.Name;
      }
      else
      {
        return "";
      }
  }  

  return base.GetVaryByCustomString(context, custom);
}

Nie jest to jednak dokładnie to, czego potrzebuję, ponieważ strony są nadal buforowane. Jedyną różnicą jest to, że teraz jest buforowany dla każdego użytkownika osobno.

Jednym z możliwych rozwiązań jest powrótGuid.NewGuid() za każdym razem, gdy użytkownik jest uwierzytelniony, ale wygląda to na ogromne marnotrawstwo zasobów.

Czy masz dla mnie jakieś wskazówki?

questionAnswers(3)

yourAnswerToTheQuestion