Sie können immer den Besitz übernehmen, vorausgesetzt, Sie verfügen über den erforderlichen Administratorzugriff. Sobald Sie den Besitz übernehmen, müssen Sie die Eigenschaftsfenster schließen und wenn Sie wieder hinein gehen, können Sie die Berechtigungen ändern. Ich kann nicht mit den Änderungen in Ihrem Code sprechen, aber ich wette, Sie haben keinen Eigentümer des Ordners.
Zugriff auf Ordner verweigert
Ich hatte dieses Problem bereits, aber ich kann es immer beheben, indem Sie auf der Registerkarte "Sicherheit" in "Eigenschaften" und dann "Erweitert" klicken und schließlich der Zugriffsberechtigungsliste "Admin" hinzufügen. In diesem Fall habe ich jedoch eine Windows Forms-App, in der ich diesen Code verwende:
FileStream config = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.ReadWrite);
in C #.
Dies alles funktionierte gut in Visual Studio, aber nachdem ich das Projekt erstellt, das Programm auf meinem Computer installiert und ausgeführt hatte, wurde der Ordner erstellt.
Aus irgendeinem Grund kann ich nicht wie üblich die Erlaubnis erhalten. Es gibt mir nur die Meldung "Sie haben keine Berechtigung zum Anzeigen oder Bearbeiten der Berechtigungseinstellungen dieses Objekts." Ich weiß nicht warum. Kann mir jemand bitte sagen, wie man entweder die Erlaubnis erhält oder den Ordner direkt löscht? Und was ist in meinem Programm schief gelaufen und hat dazu geführt?
2 Antworten auf die Frage
Sie müssen auch anrufen SetAccessControl
, um die Änderungen anzuwenden.
ds = di.GetAccessControl(); ds.AddAccessRule(fsar); di.SetAccessControl(ds); // nothing happens until you do this
Es scheint, dass die Beispiele auf MSDN, wie hier besprochen, schmerzlich im Detail fehlen . Ich habe den Code aus diesem Artikel gehackt, um Folgendes zu erhalten, das sich gut verhält:
static bool SetAcl() { FileSystemRights Rights = (FileSystemRights)0; Rights = FileSystemRights.FullControl; // *** Add Access Rule to the actual directory itself FileSystemAccessRule AccessRule = new FileSystemAccessRule("Users", Rights, InheritanceFlags.None, PropagationFlags.NoPropagateInherit, AccessControlType.Allow); DirectoryInfo Info = new DirectoryInfo(destinationDirectory); DirectorySecurity Security = Info.GetAccessControl(AccessControlSections.Access); bool Result = false; Security.ModifyAccessRule(AccessControlModification.Set, AccessRule, out Result); if (!Result) return false; // *** Always allow objects to inherit on a directory InheritanceFlags iFlags = InheritanceFlags.ObjectInherit; iFlags = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; // *** Add Access rule for the inheritance AccessRule = new FileSystemAccessRule("Users", Rights, iFlags, PropagationFlags.InheritOnly, AccessControlType.Allow); Result = false; Security.ModifyAccessRule(AccessControlModification.Add, AccessRule, out Result); if (!Result) return false; Info.SetAccessControl(Security); return true; }
Verwandte Probleme
-
3
Ein https: // ... als lokales logisches Laufwerk abbilden?
-
3
Ubuntu Server mit GNOME Desktop Envinronment - Einstellen der Apatche-Konfigurationsdateiberechtigun...
-
2
Wie kann ich zulassen, dass Programme, die Administratorrechte benötigen, beim Start in Vista ausgef...
-
1
Windows kann während des Speicherns von chkdsk und Office nicht auf die Festplatte schreiben
-
5
Gibt es eine Möglichkeit, eine geplante Aufgabe unter Windows XP auszuführen, ohne den Benutzernamen...
-
3
Wie kann ich verhindern, dass andere Personen den Inhalt meines Heimatverzeichnisses sehen, außer de...
-
8
Wie kann ich allen Benutzern in Linux Schreibzugriff auf einen Ordner gewähren?
-
7
Löschen nicht wiederherstellbarer Dateien in Vista
-
1
Zugriff auf das ehemalige XP-Laufwerk als zweites Laufwerk unter Windows 7
-
5
Zugriff auf das alte XP-Laufwerk als zweites Laufwerk unter Windows 7 ohne Chowning