2009-07-22 12 views
6

Me pregunto si hay una manera de verificar los permisos de un usuario contra una ACL en C#. Estoy construyendo un gran sistema que va a utilizar el directorio activo para la autenticación y me gustaría usar la mayor cantidad posible de plomería de seguridad de Windows. Después de pasar las últimas dos horas explorando System.Security.AccessControl, no estoy seguro de que proporcione una forma fácil de verificar un token de un usuario en su lista de ACL. Parece que está mucho más orientado a la manipulación de los descriptores de seguridad de Windows, aunque hay suficientes clases abstractas para implementar un sistema personalizado.ACL Check/Management en C#

He estado buscando en las API de Authz que parecen ser mucho más flexibles y tienen una función (AuthzAccessCheck) que permite comparar el contexto con el descriptor de seguridad. No me opongo en absoluto a envolverlos si es necesario.

¿Alguien más ha tenido un problema similar y, de ser así, cuáles fueron los pros y los contras como los vio?

+0

Estoy tratando de usar 'System.Security.AccessControl' por mis problemas de seguridad en mis aplicaciones web (no en archivos y carpetas), ¿se te ocurrió algo que se pueda compartir, por favor? gracias – Ashkan

+0

Usé Authz y construí una envoltura para ello. –

+0

¿Conoces algún recurso para Authz? Busqué en Google y encontré solo sitios web msdn que están en C++. Ya encontré [nAcl] (http://nacl.codeplex.com) que es una biblioteca de control de acceso, pero no cumple mis requisitos – Ashkan

Respuesta

1

¿Cómo se almacena y se accede a la ACL? ¿Es posible tener las entradas ACL convertidas a un objeto PrincipalPermission? Si es así, puede usar el método Demand() para verificar los derechos de acceso, arroja una SecurityException si los usuarios no tienen acceso.

Cuestiones relacionadas