OutputCache und Forms-Authentication

29/01/2008 - 15:08 von Marvin Massih | Report spam
Hallo,

ich habe eine Webanwendung (noch .NET 1.1), bei der ich für einige
Seiten den OutputCache anschalten möchte.
Folgendes funktioniert wunderbar:

<%@ OutputCache Duration="60" VaryByParam="*" %>

Nun verwende ich auf denselben Seiten aber Forms-Authentication, um
bestimmte Admin-Funktionen einzublenden, wenn man eingeloggt ist.
Hierzu frage ich Request.IsAuthenticated ab.

Meine Sorge ist nun, dass ein Administrator die Seite aufrufen könnte
und alle Benutzer die gecachete Admin-Seite sehen könnten.
Oder umgekehrt, dass der Admin keine Admin-Funktionen sieht, weil die
Version für normale Benutzer gerade gecachet wurde.

Kann mir jemand weiterhelfen?

Gruß
Marvin
 

Lesen sie die antworten

#1 Marvin Massih
29/01/2008 - 16:01 | Warnen spam
Ich schrieb:
[OutputCache soll Request.IsAuthenticated auswerten]

Habe es jetzt so gelöst:

In meiner .aspx-Seite:

<%@ OutputCache Duration="60" VaryByParam="*"
VaryByCustom="authenticated" %>

In Global.asax.cs:

public override string
GetVaryByCustomString(HttpContext context, string custom)
{
if( custom == "authenticated" )
return "authenticated=" + context.Request.IsAuthenticated;
else
return base.GetVaryByCustomString (context, custom);
}

Geht es noch eleganter?

Gruß
Marvin

Ähnliche fragen