Toon posts:

[ASP.NET] context.user.indentity uitbreiden?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik gebruik op mijn webpagina forms authenticatie en met
FormsAuthentication.SetAuthCookie( email, PersistCookie.Checked ) zet ik het authenticatie cookie.
Maar ik kan er niet meer instoppen als 1 variable namelijk de
Context.User.Identity.Name.

Ik heb al flink op het internet gezocht hoe ik dat voor elkaar zou kunnen krijgen, maar ik weet niet precies waar ik moet beginnen.

Twee elegante oplossingen (maar wel behoorlijk ingewikkeld volgens mij) die ik gevonden heb zijn:
- Een eigen klasse maken die afgeleide is van GenericPrincipal, en die uitbreiden met wat ik er nog in zou willen hebben. bv naam en klant_id
- De IPrincipal uitbreiden.

Ik heb alleen maar kunnen vinden dat ik dat zou kunnen doen, maar er is nergens een concreet voorbeeld te vinden hoe ik dit aan zou moeten pakken.

Ik kan uberhaupt al niet vinden wat er in GenericPrincipal en IPrincipal staat en er wordt ook veel gezegd over het aanpassen van de global.asax. (ivm de Application_authenticationRequest)

Kan iemand ietwat meer structuur geven aan deze brei van infmatie die ik gevonden heb?

Ik wil het het liefst mooier oplossen als de Context.User.Identity.Name verkrachten door er een hele hoop info in te zetten en die door bv een | te scheiden.

  • tijn
  • Registratie: Februari 2000
  • Laatst online: 31-07 00:06
De FormsAuthenticationTicket class heeft ook nog een UserData property (string) waar je eventueel extra info in kwijt kunt. Zoek hier maar eens op en je vindt vast wat voorbeelden.

Overigens is het wel belangrijk om te onthouden dat de FormsAuthentication klasse en de klassen die IPrincipal implementeren (bijv. GenericPrincipal) in principe los van elkaar staan. Dit houdt dus in dat wanneer je de UserData property van je ticket volstopt met leuke dingen (voor zover je die in een string kwijtkunt) dit niet automagisch in je Principal terecht komt. Wanneer je er echt wat mee wilt doen zul je toch zelf een klasse moeten maken die IPrincipal implementeert. Deze kun je dan in het Application_AuthenticateRequest event volstoppen.

Cuyahoga .NET website framework


Verwijderd

Topicstarter
*schop* :+

Ik heb authenticatie nu alweer een tijdje op zijn aller simpelst geimplementeerd om dat ik geen tijd had om me er echt in te verdiepen, maar nu begint het toch allemaal een beetje tekort te schieten.

Ik heb rolebased authenticatie voor elkaar gekregen, maar ik wil nu ik toch bezig ben eigenlijk direct de contect.user.identity uitbreiden met in een clientid. (het id van de gebruiker zoals hij in de mysql database staat)

Ik heb gezocht & gelezen, maar het wil me maar niet lukken om boven de materie uit te stijgen.
Ik kan ook nergens een tutorial vinden of een duidelijke uitleg.
De enigste informatie die ik heb kunnen vinden is dat ik het Iprincipal object moet uitbreiden. Nu val ik direct door de mand, ik ben namelijk niet echt een genie op het gebied van overerving ed ;(

Is het iemand gelukt om de contect.user.identity uit te breiden of heeft iemand misschien een link naar een duidelijke tutorial?