1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1292
1292
EMPFEHLEN
-
Hallo,
ich programmiere gerade ein kleines Werkzeug, dass in einem rekursiven Aufruf alle Unterverzeichnisse eines gegebenen Verzeichnisses auflistet. So far no problem.
Nun soll ich damit aber für jedes Verzeichnis alle NTFS-Berechtigungen für die zugewiesenen Gruppen und Benutzer auslesen. Ich hab nur keine Peilung wie, oder zumindest nicht die richtige Peilung.
Es gibt eine DirectorySecurity Klasse die mit GetAccessControl ein Verzeichnis-Objekt ausliest. Aber ich weiß nicht wie ich jetzt von dort an den sAMAccountName bzw. Gruppennamen und die jeweiligen Berechtigungen komme.
Hat da jemand in der Richtung schonmal was gemacht und kann mir einen Tip geben?
Edit:
Ich habe eine Lösung gefunden. Mit Hilfe des DirectorySecurity Objekts lassen sich die Berechtigungen wie folgt für ein gegebenes Verzeichnis auslesen:
Code :1 2 3 4 5 6 7
DirectorySecurity directorySecurity = Directory.GetAccessControl(currentDirectory); foreach (FileSystemAccessRule fileSystemAccessRule in directorySecurity.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount))) { string userName = fileSystemAccessRule.IdentityReference.Value; string userRights = fileSystemAccessRule.FileSystemRights.ToString(); Console.Writeline(userName+": "+userRights); }Geändert von WiZdooM (15.12.10 um 12:55 Uhr)
Gruß
Wizzy
-
Du bist doch schon fast am Ziel:
Code csharp:1 2 3 4 5 6 7 8 9 10 11 12 13 14
DirectorySecurity ds = Directory.GetAccessControl(dir); AuthorizationRuleCollection arc = ds.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)); foreach (FileSystemAccessRule fsar in arc) { StringBuilder sb = new StringBuilder(); sb.AppendLine("Identity : " + fsar.IdentityReference.Value); sb.AppendLine("AccessControlType : " + fsar.AccessControlType); sb.AppendLine("FileSystemRights : " + fsar.FileSystemRights); sb.AppendLine("Inherited : " + fsar.IsInherited); sb.AppendLine("PropagationFlags : " + fsar.PropagationFlags); sb.AppendLine("InheritanceFlags : " + fsar.InheritanceFlags); MessageBox.Show(sb.ToString()); }
Die FileSystemAccessRule Objekte halten im Prinzip alle Informationne die du brauchst.Geändert von rd4eva (15.12.10 um 08:47 Uhr)
In order to understand recursion, one must first understand recursion.
-
Hallo rd4eva
Danke für den Schnipsel Code. Der ist etwas detaillierter als mein Part.
Danke!Gruß
Wizzy
-
Was vorallem bei deinem Schnippsel fehlt ist die AccessControlType Eigenschaft. Ohne die bringen dir die FileSystemRights nicht sonderlich viel, da AccessControlType die Werte allow und deny annehmen kann und somit erst tatsächlich bestimmt ob der Benutzer die jeweiligen FileSystemRights darf oder eben nicht darf.
In order to understand recursion, one must first understand recursion.
-
Ja, ist richtig. Danke nochmal!
Gruß
Wizzy
Ähnliche Themen
-
ActionScript: Schleife zum Auslesen aller Dateinamen eines Verzeichnisses
Von D12 im Forum Flash PlattformAntworten: 4Letzter Beitrag: 05.12.05, 16:50 -
Win2k3 Server NTFS Berechtigungen
Von MastaDaDesasta im Forum Hosting & WebserverAntworten: 1Letzter Beitrag: 08.03.04, 19:57 -
Auslesen des Inhalts eines HTTP Verzeichnisses
Von Warper im Forum PHPAntworten: 4Letzter Beitrag: 04.02.04, 18:42 -
Alle Dateien eines Verzeichnisses auslesen
Von fMr im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 0Letzter Beitrag: 27.05.02, 19:02 -
Alle Dateien eines Verzeichnisses auslesen
Von fMr im Forum PHPAntworten: 0Letzter Beitrag: 27.05.02, 19:00





Zitieren
Login





