2010-10-15 3 views
2

J'ai besoin d'écrire un menu dans Site.Master où certains éléments de menu doivent être visibles ou non en fonction du rôle actuel de l'utilisateur. Comment puis-je vérifier cela à partir de la page? Habituellement, il suffit d'écrire la logique dans un contrôleur, mais le Site.Master n'en a pas (dans mon projet au moins!). J'apprécierais n'importe quel pointeur.Comment vérifier le rôle de l'utilisateur actuel sur la page Site.Master?

Répondre

5

Utilisez HttpContext.Current.User.

Cela sera toujours visible à partir de vos vues/vues partielles/pages maîtres.

Par exemple, pour afficher différents html pour un rôle donné, par exemple, MyRole, vous écrirons simplement:

<% if(HttpContext.Current.User.IsInRole("MyRole")) { %> 

    // tags for MyRole 

<% } else { %> 

    // tags for other users 

<%} %> 

Ceci est bien comme il est « logique d'affichage » qui appartient à la vue (ou maître page), par opposition à la "logique d'application" qui appartient au contrôleur.

Notez que les vues ne sont que des modèles. Vous pouvez y écrire du code sans affecter le motif MVC, tant que c'est uniquement la logique d'affichage. Une vue ou un gabarit ne "possède pas de contrôleur".

Ce ne sont que des modèles que le contrôleur peut trouver et utiliser.

+1

Très bien, cela fonctionne très bien, merci! – pklosinski

Questions connexes