2009-02-11 7 views
3

J'ai une application ASP.Net Web Forms dans laquelle j'utilise l'authentification basée sur les formulaires avec des fournisseurs d'appartenance et de rôle, ce qui convient parfaitement pour authentifier et contrôler l'accès aux répertoires et/ou des dossiers. Maintenant, je dois contrôler les droits de lecture, d'écriture et de suppression sur les instances d'entités individuelles, par exemple pouvoir mettre à jour ou supprimer une instance d'un client. J'ai essayé de trouver un bon moyen de mettre en œuvre cela, mais je ne sais pas par où commencer. J'ai lu environ the Authorize attribute in ASP.Net MVC et j'ai pensé que ce serait bien d'avoir quelque chose d'analogue - les méthodes de décoration de la façon dont vous pouvez les actions du contrôleur dans ASP.Net MVC. Je ne connais pas de méthode originale pour accomplir cela dans le monde des formulaires Web, et je ne connais pas de cadres ou d'autres outils qui pourraient m'aider à aller dans cette direction. Toutes les suggestions, à la fois en termes de solutions existantes et/ou comment concevoir ma propre implémentation seraient grandement appréciées.Contrôle d'accès au niveau Entité ASP.Net Web Forms

Répondre

6

Le moyen le plus simple est d'exiger que l'utilisateur soit membre du (des) rôle (s) requis pour la méthode en question avec PrincipalPermissionAttribute. Notez que cela signifie que le superviseur OU le propriétaire peut DeleteSomething().

+0

Remerciements et mises à jour. Dans mon ignorance, je n'ai jamais entendu parler de l'attribut PrincipalPermission, alors je vais m'y pencher. Je vais laisser la question sans réponse pendant un certain temps pour voir si elle attire des idées supplémentaires. –

0

Je ne pense pas que "PrincipalPermission" soit une bonne approche. Et si, je dois autoriser DeleteSomthing() pour un autre rôle? de même, Si je dois supprimer le rôle existant pour DeleteSomthing()? La seule façon est de changer les attributs au niveau du code. Ce n'est pas du tout faisable pour les grands projets.

Je suis également à la recherche d'une bonne solution.

Questions connexes