Actuellement, j'utilise [Authorize (Roles = "....."]] pour sécuriser les actions de mon contrôleur sur mon application ASP.NET MVC 1, et cela fonctionne correctement. Toutefois, certaines vues de recherche doivent comporter des boutons qui permettent d'activer/désactiver les actions en fonction de l'enregistrement sélectionné dans la liste de recherche, ainsi que les privilèges de sécurité de l'utilisateur connecté.ASP.NET MVC - Extension de l'attribut Authorize
Par conséquent, je pense que besoin d'avoir une classe accédant à une table DB qui croise ces contrôleurs/actions cibles avec des rôles d'application pour déterminer l'état de ces boutons. Cela va, évidemment, rendre les choses compliquées car les privilèges devront être maintenus à 2 endroits - dans cette classe/DB table et aussi sur les actions du contrôleur (plus, si je veux changer l'accès à l'action, je vais devoir changer le codez et compilez plutôt que de simplement modifier une entrée de table DB). Idéalement, je voudrais étendre la fonctionnalité [Autoriser] afin qu'au lieu d'avoir à spécifier les rôles dans le code [Autoriser], il va interroger la classe de sécurité en fonction de l'utilisateur, du contrôleur et de l'action et cela retournera un booléen permettant ou refusant l'accès. Y a-t-il de bons articles à ce sujet - je ne peux pas imaginer que ce soit une chose inhabituelle à vouloir faire, mais je semble avoir du mal à trouver quoi que ce soit sur la façon de le faire. J'ai commencé à faire du code en regardant l'article http://schotime.net/blog/index.php/2009/02/17/custom-authorization-with-aspnet-mvc/, et il semble que ça commence bien, mais je ne trouve pas le moyen "correct" d'obtenir le contrôleur appelant et les valeurs d'action du httpContext - je pourrais peut-être truquer un un peu de code pour les extraire de l'url de la requête, mais cela ne me semble pas correct et je préfère le faire correctement.
Vive
MH