2010-05-09 18 views
8

Estoy usando el siguiente código simple para agregar control total a un directorio, pero no funciona.¿Cómo establecer el control total en un directorio?

 String dir_name = @"folder_full_path"; 
     DirectorySecurity dir_security = Directory.GetAccessControl(dir_name); 
     FileSystemAccessRule access_rule = new FileSystemAccessRule(@"AccountName", 
      FileSystemRights.FullControl, AccessControlType.Allow); 
     dSecurity.AddAccessRule(access_rule); 
     Directory.SetAccessControl(dir_name, dir_security); 

Pero este código único conjunto permisos especiales a la carpeta de destino. Este código es casi el mismo que el MSDN sample. Me estoy rascando la cabeza por una explicación razonable ... Espero que alguien pueda arrojar algo de luz sobre mí.

Muchas gracias.

+4

Lo que si se ha utilizado el constructor 5-parámetro para FileSystemAccessRule en su lugar? http://msdn.microsoft.com/en-us/library/sfe70whw.aspx –

+3

Gracias Ben. Podría hacerlo con el constructor de 5 parámetros ahora. Pero no sé por qué existe el constructor de 3 parámetros si simplemente NO FUNCIONA. – smwikipedia

Respuesta

-3

:) Date la vuelta.

  • Haga un directorio.

  • Asignar permisos.

  • Leer DirectorySecurity ACL y comprobar en el depurador cómo se ve;)

Voila.

13

Después de técnicos de ingeniería inversa de las reglas originales del LCA que tengo que trabajar con el siguiente código:

IdentityReference everybodyIdentity = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 

FileSystemAccessRule rule = new FileSystemAccessRule(
    everybodyIdentity, 
    FileSystemRights.FullControl, 
    InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, 
    PropagationFlags.None, 
    AccessControlType.Allow); 

Puede que ayuda a cualquier visitante más :)

+0

Gracias, creo que esta es la versión de 5 parámetros. – smwikipedia

+0

Funciona perfecto, gracias! – Despertar

+1

+1 para WellKnownSidType. Necesito la cuenta de administrador en mi programa. – 010110110101

Cuestiones relacionadas