2011-09-16 9 views
7

Voglio impostare un file per essere scrivibile da tutti gli utenti.Come posso impostare un file per essere scrivibile da tutti gli utenti?

FileSecurity sec = File.GetAccessControl(fileName); 

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

File.SetAccessControl(fileName, sec); 

Il problema è che non so quale stringa utilizzare. Ho provato users = WindowsAccountType.Normal.ToString(), ma questo dà solo "Normal", che non funziona. Come posso ottenere la stringa che designa il gruppo di tutti gli utenti su una macchina?

risposta

7

Presumo si sta cercando per il gruppo "Everyone", che tutti appartengono gli utenti connessi. Tuttavia utilizzando la stringa "Everyone" si arriva in seria difficoltà su sistemi non in lingua inglese

Una soluzione molto migliore è quello di usarlo tramite SecurityIdentifier WellKnownSidType.WorldSid:

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

La soluzione completa è già descritta in questa risposta: Add "Everyone" privilege to folder using C#.NET

4

provare "Tutti", che è un account di sistema definita su ogni macchina o anche sul dominio AD eventuale (DOMINIO \ Tutti in quel caso)

+0

"Everyone" funziona solo su sistemi inglesi. – Robert

Problemi correlati