2011-09-16 10 views
7

Quiero establecer un archivo para que todos los usuarios puedan escribirlo.¿Cómo puedo configurar un archivo para que todos los usuarios puedan escribir?

FileSecurity sec = File.GetAccessControl(fileName); 

string users = ?????; 
sec.AddAccessRule(new FileSystemAccessRule(
     users, 
     FileSystemRights.Write, 
     AccessControlType.Allow)); 

File.SetAccessControl(fileName, sec); 

El problema es que no sé qué cadena usar. He intentado users = WindowsAccountType.Normal.ToString(), pero eso solo da "Normal", que no funciona. ¿Cómo puedo obtener la cadena que designa el grupo de todos los usuarios en una máquina?

Respuesta

7

Asumo que busca el grupo "Todos", que todos los usuarios que han iniciado sesión pertenecen a. Sin embargo, utilizando la cadena "Todo el mundo" te meterá en serios problemas en los sistemas no están en inglés

Una solución mucho mejor es usarlo a través de SecurityIdentifier WellKnownSidType.WorldSid:

SecurityIdentifier everyone = new SecurityIdentifier(WellKnownSidType.WorldSid, null); 

La solución completa se describe ya en esta respuesta: Add "Everyone" privilege to folder using C#.NET

4

tratar "Todo el mundo", que es una cuenta de sistema definido en cada máquina o incluso en el dominio de AD en su caso (DOMINIO \ Todo el mundo en ese caso)

+0

"Todos" funciona solo en sistemas en inglés. – Robert

Cuestiones relacionadas