2011-01-14 2 views
0

Ich versuche, benutzerdefinierte Felder für ein Identity-Objekt zu erhalten, so dass ich auf der Seite Seite Verweise auf den angemeldeten Benutzer vereinfachen kann.Benutzerdefinierte Identität für Benutzerobjekt in MVC 2.0

WizBang.aspx 

    Welcome <b><%: Page.User.Identity.FirstName %></b> 
    Your username is<%: Page.User.Identity.Name %>! 

Mein anderer Gedanke ist es einfach in der Sitzung zu halten und setzen Sie ihn über eine Application_PostAuthenticateRequest Zuhörer und nicht Verwirrung mit der ganzen Identität an erster Stelle. Oder wenn es einen anderen Weg gibt, der besser ist.

Antwort

0

Application_PostAuthenticateRequest ist die richtige Methode zum Festlegen einer benutzerdefinierten IIdentity. Ich schlage vor, dass Sie eine statische Eigenschaft zu Ihrer Identität hinzufügen:

public MyCustomIdentity : IIdentity 
{ 
    public static MyCustomIdentity Current { get { return (MyCustomIdentity) Thread.CurrentPrincipal.Identity; }} 
} 

und greifen Sie wie <%= MyCustomIdentity.Current.SpecialProperty %> aus Ihrer Sicht.

+0

Wie soll ich meine Identität in dieser PostAuthenticate-Anfrage verwenden? Ersetzen Sie einfach den aktuellen HTTPContext? Tut mir leid, wenn das ziemlich offensichtlich scheint. – ClutchDude