2009-07-22 9 views
6

Je me demande s'il existe un moyen de vérifier les permissions d'un utilisateur sur une ACL en C#. Je construis un grand système qui va utiliser le répertoire actif pour l'authentification et je voudrais utiliser autant de plomberie de sécurité de Windows que je peux. Après avoir passé les deux dernières heures à parcourir le System.Security.AccessControl, je ne suis pas sûr qu'il offre un moyen facile de vérifier le jeton d'un utilisateur par rapport à sa liste de contrôle d'accès. Il semble que ce soit beaucoup plus orienté vers la manipulation des descripteurs de sécurité Windows, bien qu'il y ait suffisamment de classes abstraites pour implémenter un système personnalisé.ACL Check/Management en C#

Je regarde les API Authz qui semblent beaucoup plus flexibles et qui ont une fonction (AuthzAccessCheck) qui permet de vérifier le contexte par rapport au descripteur de sécurité. Je ne suis pas opposé du tout à les emballer si j'en ai besoin.

Est-ce que quelqu'un d'autre a eu un problème similaire et si oui, quels étaient les avantages et les inconvénients comme vous les avez vus?

+0

J'essaie d'utiliser 'System.Security.AccessControl' pour mes problèmes de sécurité dans mes applications Web (pas les fichiers et les dossiers), avez-vous trouvé quelque chose qui pourrait être partagé s'il vous plaît? merci – Ashkan

+0

J'ai utilisé Authz et construit un emballage pour cela. –

+0

Connaissez-vous des ressources pour Authz? Je l'ai googlé et j'ai trouvé juste des sites msdn qui sont en C++. J'ai déjà trouvé [nAcl] (http://nacl.codeplex.com) qui est une bibliothèque de contrôle d'accès, mais il ne répond pas à mes besoins. – Ashkan

Répondre

1

Comment l'ACL est-elle stockée et accessible? Est-il possible de convertir les entrées ACL en objet PrincipalPermission? Si c'est le cas, vous pouvez utiliser la méthode Demand() pour vérifier les droits d'accès, elle déclenche une exception SecurityException si les utilisateurs n'y ont pas accès.

Questions connexes