Как я могу установить файл для записи для всех пользователей? - PullRequest
7 голосов
/ 16 сентября 2011

Я хочу сделать файл доступным для записи всем пользователям.

FileSecurity sec = File.GetAccessControl(fileName);

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

File.SetAccessControl(fileName, sec);

Проблема в том, что я не знаю, какую строку использовать.Я пытался users = WindowsAccountType.Normal.ToString(), но это дает только "Normal", который не работает.Как я могу получить строку, которая обозначает группу всех пользователей на машине?

Ответы [ 2 ]

7 голосов
/ 16 сентября 2011

Я предполагаю, что вы ищете группу "Все", к которой относятся все вошедшие пользователи. Однако использование строки «Все» приведет к серьезным проблемам в неанглийских системах

Гораздо лучшим решением является использование его через SecurityIdentifier WellKnownSidType.WorldSid:

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

Полное решение уже описано в этом ответе: Добавьте привилегию «Все» в папку, используя C # .NET

4 голосов
/ 16 сентября 2011

попробуйте «Все», которая является системной учетной записью, определенной на каждом компьютере или даже в домене AD, если таковой имеется (DOMAIN \ Everyone в этом случае)

...