He estado teniendo problemas para asignar permisos de forma programada a las entradas de carpetas/registro. He conseguido asignar permisos heredar usando el siguiente código:C# - Windows ACL - Aplicación de permisos heredados
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);
Ajusta correctamente mis permisos de archivo en todas las carpetas secundarias i crear un administrador. Sin embargo, no establece los permisos en la carpeta dir
. He jugado con algunas permutaciones de herencia y propogación, pero no tuve ninguna alegría.
Por ejemplo, tengo:
dir = %programfiles%\Test
Si he creado una carpeta en la prueba (%programfiles%\Test\SubFolder
), que tienen todos los permisos asignados a ella para mi usuario, pero no tengo permisos completos en %programfiles%\Test
. Esto es realmente molesto, ya que me gustaría otorgarle a mi usuario permisos completos para hacer lo que sea con el directorio de prueba también.
Tengo problemas similares con los permisos de registro, pero creo que si puedo resolver uno, puedo resolver los dos problemas pendientes.
¿Alguien sabe cómo se puede resolver esto?
Regards
Tris
subcarpeta es un objeto secundario de la prueba por lo que hereda reglas de prueba , no de la otra manera. ¿Has intentado crear la ACL en la prueba? –