2009-07-22 25 views
6

Mi chiedo se esiste un modo per verificare le autorizzazioni di un utente rispetto a un ACL in C#. Sto costruendo un sistema di grandi dimensioni che utilizzerà la directory attiva per l'autenticazione e vorrei usare il maggior numero possibile di tubature per la sicurezza di Windows. Dopo aver passato l'ultimo paio di ore a navigare su System.Security.AccessControl, non sono sicuro che fornisca un modo semplice per controllare un token utente rispetto alla sua lista ACL. Sembra che sia molto più orientato a manipolare i descrittori di sicurezza di Windows anche se ci sono abbastanza classi astratte per implementare un sistema personalizzato.Controllo ACL/Gestione in C#

Ho visto le API Authz che sembrano molto più flessibili e hanno una funzione (AuthzAccessCheck) che consente di verificare il contesto rispetto al descrittore di sicurezza. Non sono affatto contrario a confezionarli se necessario.

Qualcun altro ha avuto un problema simile e, in caso affermativo, quali erano i pro ei contro come li hai visti?

+0

Sto cercando di utilizzare 'System.Security.AccessControl' per i miei problemi di sicurezza nelle mie applicazioni web (non file e cartelle), hai trovato qualcosa che potrebbe essere condiviso per favore? grazie – Ashkan

+0

Ho usato Authz e ho creato un wrapper per questo. –

+0

Conosci qualche risorsa per Authz? L'ho cercato su google e ho trovato solo siti Web msdn in C++. Ho già trovato [nAcl] (http://nacl.codeplex.com) che è una libreria di controllo degli accessi, ma non soddisfa i miei requisiti – Ashkan

risposta

1

Come viene archiviato e consultato l'ACL? È possibile convertire le voci ACL in un oggetto PrincipalPermission? In tal caso, è possibile utilizzare il metodo Demand() per verificare i diritti di accesso e lancia SecurityException se gli utenti non hanno accesso.