Изменение прав доступа к файлам .NET работает в Windows 10, но не в Server 2008 - PullRequest
0 голосов
/ 08 июня 2018

У меня есть файл Configuration.ini, который копируется в каталог Program Files (x86)\myapp\ во время установки установщиком NSIS.Когда он копируется, у него нет необходимых мне разрешений, поэтому я попытался изменить его, используя следующую информацию: Как предоставить полное разрешение файлу, созданному моим приложением, для ВСЕХ пользователей?

private void GrantAccess(string fullPath)
{
    DirectoryInfo dInfo = new DirectoryInfo(fullPath);
    DirectorySecurity dSecurity = dInfo.GetAccessControl();
    dSecurity.AddAccessRule(new FileSystemAccessRule(new SecurityIdentifier(WellKnownSidType.WorldSid, null), FileSystemRights.FullControl, InheritanceFlags.ObjectInherit | InheritanceFlags.ContainerInherit, PropagationFlags.NoPropagateInherit, AccessControlType.Allow));
    dInfo.SetAccessControl(dSecurity);
}

На моем персональном компьютере при его разработке файл получает установленные разрешения, но при развертывании его на сервере Windows 2008 или 2012 он не меняется.Есть 2 exe-файла, которые должны получить доступ к / изменить настройки, один - это сервис, который работает как LocalSystem, другой - просто локальный пользователь.

Есть ли более надежный способ, который будет работать для всехоперационные системы от Windows 7 и выше?

...