Session User Objekt
Hejsa :)Når en bruger er logged ind ønsker jeg at gemme nogle oplysninger om denne bruger i et user objekt.
f.eks. info som navn og ID på brugeren i databasen.
Jeg ønsker ikke at gemme infoen i session variabler, grundet at jeg synes at have faldt over en mere interessant løsning :)
Nemlig hvor man erstatter User.Identity med sit eget user objekt der implementerer IPrincipal interfacet. Således at man kan tilføje egne variabler til User objektet.
Jeg har dog søgt lidt rundt på dette og det bedste jeg er kommet frem til er denne info i QuickStarten:
public class MyPrincipal : IPrincipal {
// implement application-defined role mappings
}
// In a Global.asax file:
public void WindowsAuthentication_OnAuthenticate(Object Source, WindowsAuthenticationEventArgs e) {
// Attach a new application-defined class that implements IPrincipal to
// the request.
// Note that since IIS has already performed authentication, the provided
// identity is used.
e.User = new MyPrincipal(e.Identity);
}
For det første er jeg ikke helt sikker på at det er denne løsning der er relevant i min sammenhæng da jeg ikke er ude på at håndtere roller igennem dette. For det andet bruger jeg forms-authentication istedet for WindowsAuthentication.
Det jeg gerne vil være istand til, er at når jeg nu kan skrive User.Identity.Name for at få navnet på brugeren der er logged ind, så ville jeg gerne kunne skrive User.Identity.ID for at få DB ID'et på brugeren.
Så for at opsummere lidt går mit spørgsmål altså på hvordan kan override User objectet således jeg selv kan implementere en klasse der indeholder de variabler jeg gerne vil kunne tilgå derfra.
I må meget gerne vise et simpel kode eksempel, så blir jeg glad :)
