Программно назначенный доступ сетевого сервиса к папке с помощью C#
У меня есть установщик, который запускает некоторый код C#. Я хочу, чтобы код C# давал "полный контроль" папке для учетной записи "сетевой службы". Это возможно?
Я вижу несколько примеров онлайн с подключением к домену. Но сетевой сервис находится не в домене, а в локальной учетной записи, и я просто хотел узнать, как это сделать в C#?
ура
1 ответ
Решение
DirectoryInfo dirInfo = new DirectoryInfo("C:\\TestDir2");
DirectorySecurity dirSecurity = dirInfo.GetAccessControl();
dirSecurity.AddAccessRule(new FileSystemAccessRule("ASPNET", FileSystemRights.Write|FileSystemRights.DeleteSubdirectoriesAndFiles, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow));
dirInfo.SetAccessControl(dirSecurity);
Упоминается в: Установка прав доступа к каталогу - получение исключения "Флаги не могут быть установлены"
Более общий образец можно найти по адресу: http://www.redmondpie.com/applying-permissions-on-any-windows-folder-using-c/