2011-10-04 5 views
3

Je personnalise IIdentity et IPrincipal en ajoutant quelques autres propriétés dans IIdentity.Fortement typé @ User.Identity

Vous pouvez obtenir une instance fortement typée @User.Identity pour ma classe personnalisée? Sans avoir à faire des conversions en cast.

J'ai pensé à quelque chose comme rasoir personnaliser la vue, mais je ne sais même pas par où commencer.

Répondre

3

Vous pouvez essayer de créer une méthode d'extension sur IPrincipal

public static class PrincipalExtensions 
{ 
    public static MyIdentity GetMyIdentity (this IPrincipal principal) 
    { 
     return principal.Identity as MyIdentity; 
    } 
} 

puis obtenir votre identité en appelant @User.GetMyIdentity()

3

Vous pouvez créer un nouveau type de base pour votre point de vue et y ajouter une propriété ou méthode ça va faire le casting. De cette façon, vous pouvez éviter de le faire tout le temps dans vos opinions.

+0

+1, mais qu'est-ce que c'est «Fin ruine»? –

+0

ne comprenait pas non plus "Fin ruine"; Où puis-je trouver un bon article expliquant comment personnaliser ma ViewBase (basée sur le rasoir)? – ridermansb

+1

@adrift désolé, une faute de frappe bizarre de ma part. Sens "méthode". – marcind

Questions connexes