2010-01-10 7 views
2

je voudrais assurer mes actions de contrôleur MVC en utilisant ...Attraper ASP.Net MVC principe Permission attribut exceptions

[PrincipalPermission(SecurityAction.Demand, Role="Administrator")] 

Cependant, si l'utilisateur n'est pas dans ce rôle alors SecurityException « Demande d'autorisation principale échoué." est jeté par le code.

Il semble qu'il n'y ait aucun moyen de gérer cette erreur, même l'erreur [Handle] ne l'attrape pas.

Ce que je voudrais est un moyen d'attraper les exceptions de sécurité, puis rediriger l'utilisateur vers ma page de connexion (ou route).

Ou, un moyen d'écrire mon propre filtre d'action que je peux ajouter à n'importe quelle méthode, par exemple.

[MustBeAnAdministrator] 

... qui vérifiera si l'utilisateur a le rôle correct et les redirigera. Cependant, je ne peux pas sembler obtenir une redirection pour travailler dans un filtre d'action.

Merci.

+0

Si votre rôle est un groupe Windows, vous voulez probablement dire "Administrateurs" avec un "s". –

Répondre

1

Dans notre MVC-projet, nous utilisons le

<Authorize(Roles:="Administrators")> 

Fonction donnée par le MembershipProvider - qui nous avons ajusté nos conditions. Si l'utilisateur n'est pas connecté, il sera redirigé vers l'écran de connexion.