Doppelte GetAccessRules, FileSystemAccessRule Einträge
Ich bin immer ein Duplikat FileSystemAccessRule aus diesem code hier unten:
C:\inetpub\wwwroot\AspInfo\Account
BUILTIN\IIS_IUSRS : Allow : ReadAndExecute, Synchronize
BUILTIN\IIS_IUSRS : Allow : -1610612736
NT SERVICE\TrustedInstaller : Allow : FullControl
NT SERVICE\TrustedInstaller : Allow : 268435456
und ich kann nicht herausfinden, warum, was es ist.
Sowie die Berechtigungen angezeigt wird entspricht nicht dem, was ich sehe-Datei FileManager Eigenschaften.
Zum Beispiel, wie finde ich die "List Folder Contents", die Erlaubnis, die aus diesem oder ähnlichen iteration. Wenn jemand weiß, der ein Beispiel innerhalb der .NETTO-docs wäre es hilfreich.
protected void directoryInfo()
{
var di = new DirectoryInfo(Server.MapPath("/"));
foreach (DirectoryInfo dir in di.GetDirectories())
{
Response.Write(dir.FullName + "<br/>");
DirectorySecurity ds = dir.GetAccessControl();
foreach (FileSystemAccessRule fsar in ds.GetAccessRules(true, true, typeof(System.Security.Principal.NTAccount)))
{
string userName = fsar.IdentityReference.Value;
string userRights = fsar.FileSystemRights.ToString();
string userAccessType = fsar.AccessControlType.ToString();
Response.Write(userName + " : " + userAccessType + " : " + userRights + "<br/>");
}
}
}
InformationsquelleAutor jradxl | 2010-08-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erhalten Sie separate Regeln Einträge für übernommene Regeln und für Regeln, die explizit festlegen, in diesem Ordner. Es gibt auch einen Unterschied je nach der Ausbreitung Einstellungen für jede Regel. Zum Beispiel können Sie einen Satz von Berechtigungen, die gesetzt sind, zu verbreiten, zu-Unterordner, und einen anderen Satz an Dateien innerhalb des Ordners. Dein code ist auch immer der audit-Regeln (SACL) auf den Ordner, wo Sie scheinen nur zu wollen, der Zugang Berechtigungen (DACL).
Versuchen Sie dies:
Den
ReadAndExecute
Erlaubnis, die Sie sehen, enthält die "Ordnerinhalt anzeigen" - Berechtigung. Sie können prüfen, ob die einzelnen Berechtigungen mithilfe der entsprechenden fahne in der FileSystemRights enum. Zum Beispiel:if
Auswertung unter VerwendungFileSystemRights
ist nicht gestattet.if (FileSystemRights.ListDirectory) { ... }
. msdn.microsoft.com/en-us/library/... sollten Sie nicht haben, um zu sehen, wenn SieFileSystemRights
auf einem bestimmten Verzeichnis - wenn du das in der Schleife, müssen Sie Verzeichnisse. Wenn Sie Verzeichnisse, die Sie habenFileSystemAccessRule
Eigenschaften. Wenn Sie in der Schleife derFileSystemAccessRule
Eigenschaften, Sie habenFileSystemRights
Eigenschaften, garantiert.FileSystemAccessRule
Eigenschaften? Nicht folgenden. Alle mein Punkt war, dass Sie nicht haben, um zu überprüfenuserRights = fsar.FileSystemRights.ToString();
oder alle dieser Eigenschaften, weil Sie bereits wissen, dass Sie Rechte haben, wenn Sie, d.h.di.GetDirectories()
kommt zurück mit diesem Verzeichnis. Sie brauchen nicht die 2.foreach
an alle, oben genannten, zu wissen, wenn Sie List Directory Rechte.