[asp.net] cacheing met role-dependency

Pagina: 1
Acties:

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
Ik probeer in mijn asp.net applicatie caching in te bouwen, maar direct al tegen het (vgs mij veelvoorkomende) probleem aan dat de output varieert naar gelang de rol die de ingelogde gebruiker heeft. Natuurlijk kan ik een VaryByCustom maken en bij ieder request de rol van de gebruiker opvragen en dan dus wel of niet gaan cachen. Maar dat is een beetje dubbelop, omdat ik dan op nóg een plek die rol uit de database moet hengelen.

Wat ik eigenlijk eerst zou willen, is dat ik de naam de de rol van de gebruiker eerst ergens cache. Dus ik dacht, ik flikker em in de sessie. Simpel. Maar wat blijkt nou, als de gebruiker opnieuw inlogt met een andere rol, zit de vorige rol nog in de sessie. Om de een of andere reden krijg je in asp.net dus geen nieuwe sessie als je opnieuw inlogt. Ook eerst uitloggen helpt niet (zoals verwacht).

Nu zoek ik dus eigenlijk gewoon een plek om informatie op te slaan die specifiek is aan de ingelogde gebruiker, en niet zozeer specifiek aan de sessie. Volgens mij hoeft dit niet zo moeilijk te zijn, ondanks dat ik op internet al hele uitbundige oplossingen vond, kan ik me niet voorstellen dat dit niet simpel is...

Iemand een idee?

日本!🎌


Verwijderd

_Thanatos_ schreef op vrijdag 23 maart 2007 @ 17:18:
...
Wat ik eigenlijk eerst zou willen, is dat ik de naam de de rol van de gebruiker eerst ergens cache. Dus ik dacht, ik flikker em in de sessie. Simpel. Maar wat blijkt nou, als de gebruiker opnieuw inlogt met een andere rol, zit de vorige rol nog in de sessie. Om de een of andere reden krijg je in asp.net dus geen nieuwe sessie als je opnieuw inlogt. Ook eerst uitloggen helpt niet (zoals verwacht).
...
Klinkt misschien heel simpel, en misschien is er wel een betere oplossing... Maar kan je niet gewoon je sessie clearen als je inlogt? Dus stel dat je rol in Session["rol"] staat, je simpelweg bij inloggen Session["rol"] null maakt?

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 27-11 10:50

_Thanatos_

Ja, en kaal

Topicstarter
Maar, is er dan een soort van event waar ik dat kan invullen? Ja, de Login control heeft wel zo'n event, het LoggedIn event, maar die wordt helemaal niet eens afgevuurd, dus dat zal wel ergens anders voor zijn (hoewel de documentatie suggereert dat het wel de goeie is).

日本!🎌


  • Eegee
  • Registratie: Januari 2000
  • Nu online
Je hebt toch een Authenticate event waarin je bij een geldige inlogpoging een sessie initialiseert? Daar valt dan ook eerst het wissen van een ev. bestaande sessie onder, daarna vul je hem weer. Ok LoggedIn is inderdaad de plek daarvoor, maar als die niet werkt... (waarom weet ik ook niet).
Misschien helpt dit nog: http://groups.archivesat....Security/thread290631.htm

Verder kan je misschien nog iets doen met het custom object SessionCache
Dit slaat gewoon iets in de cache op maar met als truukje het session-id in de cache-key geplakt (of een zelf gekozen uniqueId).
Of anders gewoon zelf een slim samengestelde cache-key kiezen adhv rolnaam of gebruikersnaam o.i.d.

[ Voor 51% gewijzigd door Eegee op 28-03-2007 21:18 ]