Access Control List (ACL) abstraction layer in .net

Gibt es ein ACL-abstraction-layer verfügbar .net? Ich habe gesehen, einige "best practices" - Dokumente, aber keine gute Basis Umsetzung. Was über das System.Sicherheit.AccessControl? Ist das ein guter Ausgangspunkt?

Die ACL ' s sollten mit Rollen gespeichert in der DB als auch Rollen, die durch das system und für die in-memory-Objekt-Definitionen als auch die db-Objekte oder Dateien. So sollte es sein, generischen und/oder einfach zu erweitern.

Sollte diese verlassen sich auf IPrincipal, IIdentity aus .net framework?

Zend hat etwas ähnliches in Ihrem Framework für PHP und ich bin auf der Suche, diese Art von Sachen für C# statt der Portierung, dass (wenn es ist bereits eine standard-Lösung oder best-practice-Umsetzung).

@ladislav:

Es ist nicht beabsichtigt zu sein verwendet nur in web-services, fat clients oder standalone-apps. Weil ich bin auf der Suche, eine Abstraktions-Schicht, die erweitert werden kann durch Adapter für eine spezifisch backend/Plattform. Du hast Recht, ich bin auf der Suche etwas wie ein role based access management abstraction layer für verschiedene Arten von Objekten und Recht-Definitionen. Diese sollten sich nicht auf die ACLs setzen Sie für den Ordner im Dateisystem. Ein Dateisystem sollte ein spezieller adapter verwendet, indem die ACLs Umsetzung. Für mich, ACL selbst ist ein Konzept und hat nichts mit Dateisystemen. Dateisysteme VERWENDET, eine Implementierung des Konzepts der ACL (auch wenn es meistens sehr bekannt in diesem Bereich). Die harte Abhängigkeit auf die Win32-api ist nicht gewollt. Dies ist der Grund, warum ich Sie um etwas bitten, generische und abstrakte (interface), die gemeinhin (und Häufig) verwendet. Kennen Sie die Implementierung im zend-framework (ich weiß, es ist PHP aber das Konzept funktioniert für jede app, nicht nur web-basiert)? Es ist abstrahiert und könnte verwendet werden, für jedes Objekt in der code

  • Was ist, Probleme haben Sie mit System.Security.AccessControl?
  • Ich habe gesehen, AccessRule<T> habe aber nicht gefunden nützlichen Beispielcode. Die msdn fehlen einige Beispiele in diesem Bereich, denke ich. nacl.codeplex.com zu sein scheint, eine Lösung aber ich weiß nicht, ob es allgemein ist oder nicht.
  • ... vielleicht ein Anwendungsgebiet ist der Zugriff auf einen bestimmten Teil der Benutzeroberfläche unabhängig von den Daten Rechte. Eine einfache string-basierten Benutzer - /Rollen - /objectToAccess wäre ein Ausgangspunkt. Dies könnte erweitert werden, in späteren Meilensteine mit den wachsenden Anforderungen der Nutzer/Anforderungen (z.B. zur Nutzung db-backed-store oder windows-Benutzer). Ich will nicht eine harte Abhängigkeit auf Dateien/Verzeichnisse oder Active Directory. (Ich weiß, ich könnte einen separaten Ordner zu symbolisieren, die Sachen tun, die Magie auf der fs, aber ich glaube nicht, dass das eine gute Idee ist.)
  • Sie sollte klar und deutlich in Ihrer Frage beschreiben, was Sie tun möchten und welche Art von Anwendung, die Sie bauen. Werden Sie sich bewusst, dass .NET ist nicht nur über das erstellen von web-Anwendungen, so dass nicht jede Funktion in .NET ist verwandt mit dem, was Sie erwarten. Der namespace, die Sie erwähnt haben, ist eng gekoppelt an Windows - ich erwarte, dass es wrapper für die Win32-API zum manipulieren von ACLs in Windows. Was du suchst ist wahrscheinlich genannt rollenbasierte Sicherheit und im Falle von web-Anwendung Mitgliedschaftsanbieter und der rollenanbieter.
  • Ist es vollständig gekoppelt oder nur die Standard-Implementierungen? Ich bin nicht einverstanden mit Ihrer Aussage. Es gibt einige Beispiele für die IPrincipal und IIdentity in microsofts all code samples library auf codeplex. Aber du hast Recht, wenn Sie sagen, dass die meisten umgesetzt (gegeben) Klassen sind eng gekoppelt mit bestimmten Feldern (wie fs oder web).
  • IPrincipal und IIdentity sind zwei Kern-Schnittstellen zu tun, die eine Authentifizierung / Autorisierung .NET. Kombinieren Sie Sie mit PrincipalPermission + PrincipalPermissionAttribute und Sie können bauen, was Sie wollen, aber vielleicht gibt es ready-to-use Lösung (ich bin mir nicht bewusst von Ihnen, außer denen, die ich bereits erwähnt).
  • Danke für die info. Es wäre schön, wenn .net enthält einen einfachen Typ-unabhängigen (mit dem Objekt oder generische Typ) Basis-Implementierung.

InformationsquelleAutor Beachwalker | 2011-07-28
Schreibe einen Kommentar