Ich habe eine ASP.NET MVC-Anwendung. Ich muss jedoch einige Seiten zwischenspeichern nur für nicht authentifizierte Benutzer.Wie Deaktivieren des Ausgabezwischenspeichers für authentifizierte Benutzer in ASP.NET MVC?
Ich habe versucht, VaryByCustom="user"
mit der folgenden GetVaryByCustomString
Implementierung zu verwenden:
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);
}
Doch dies ist nicht genau das, was ich brauche, weil Seiten noch zwischengespeichert werden. Einziger Unterschied ist, dass jetzt für jeden Benutzer separat zwischengespeichert wird.
Eine mögliche Lösung ist die Rückgabe Guid.NewGuid()
jedes Mal, wenn Benutzer authentifiziert ist, aber es sieht aus wie eine riesige Verschwendung von Ressourcen für mich.
Also hast du irgendwelche Tipps für mich?
Cool! Nette Lösung. –
Interessant - hatten Sie seit diesem Post (vor 1 Jahr) irgendwelche Probleme mit dieser Methode? Danke – UpTheCreek
@UpTheCreek: Wir verwenden etwas kompliziertere Version dieses Codes in unserem Produkt. Natürlich garantiere ich nichts, aber nach meiner Erfahrung funktioniert es. –