Ho riscontrato problemi nell'assegnazione delle autorizzazioni alle cartelle/voci del Registro di sistema in modo programmatico. Sono riuscito ad assegnare ereditare le autorizzazioni utilizzando il seguente codice:C# - ACL di Windows - Applicazione di autorizzazioni ereditate
FileSystemAccessRule rule = new FileSystemAccessRule(LOGON_USER_NAME, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow);
DirectorySecurity security = new DirectorySecurity();
security.SetAccessRule(rule);
Directory.CreateDirectory(dir);
Directory.SetAccessControl(dir, security);
Questa imposta correttamente i miei permessi dei file su tutte le cartelle figlio creo come amministratore. Tuttavia, non imposta le autorizzazioni sulla cartella dir
stessa. Ho giocato con una discreta permutazione per ereditarietà e propaganda, ma non ho avuto alcuna gioia.
Per esempio, io ho:
dir = %programfiles%\Test
Se ho creato una cartella in prova (%programfiles%\Test\SubFolder
), ho autorizzazioni complete assegnate ad esso per il mio utente, ma non hanno autorizzazioni complete su %programfiles%\Test
. Questo è davvero fastidioso, dato che mi piacerebbe dare ai miei utenti permessi completi per fare qualsiasi cosa con la directory Test.
Ho problemi simili con le autorizzazioni di registro, ma credo che se riesco a risolverne uno, posso risolvere entrambi i problemi in sospeso.
Qualcuno sa come questo può essere risolto?
Regards
Tris
SubFolder è un oggetto figlio di prova in modo che eredita le regole di prova , Non il contrario. Hai provato a creare l'ACL in Test? –