Question

J'aimerais être en mesure d'obtenir une certaine manière fortement typée de savoir quelle action est en cours d'exécution.

Pour clarifier im faire AOP où j'autoriser l'accès à une action donnée si l'utilisateur dispose des droits pour cette action.

Le problème avec l'aide d'une chaîne pour déterminer quelle règle pour vérifier, est que si un développeur renomme une action, je reçois wont une erreur de compilation me disant que ma règle est brisée.

Toutes les idées ??

Était-ce utile?

La solution

Développer un attribut qui exécute votre chèque. Appliquer l'attribut, avec toutes les options nécessaires, aux actions que vous voulez protéger. Écrire des tests unitaires qui vérifient que les actions en question existent et sont décorées avec votre attribut (avec les options appropriées). vous ne devez pas savoir dans votre attribut ce que l'action est en cours d'exécution, juste si l'utilisateur actuel passe les tests comme configuré par les options de votre attribut.

J'ai deux ou trois différents attributs que je suis dérivé de AuthorizeAttribute qui font exactement ce genre de chose.

 public class RequiresEmailAttribute : AuthorizeAttribute
 {
      ... implements the logic to test whether the current user
      ... has an email address and redirects to error view if no
      ... email address is found
 }

 [RequiresEmail]
 public ActionResult SendEmail( string to )
 {
    ....
 }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top