2016-07-04 1 views
0

Моя проблема в том, что мне нужна моя программа для записи на сетевой диск с определенными разрешениями файлов и папок, которые не позволяют текущим пользователям писать, редактировать или удалять прямо на этом диске, поскольку они продолжают испортить наши каталоги. Но мне все же нужны эти разрешения для моего приложения. Есть ли способ обойти это?Разрешения для файлов и папок в приложении C#

+0

добавить разрешения на вкладке безопасности в папке которую вы хотите получить доступ. –

+1

Вам нужно олицетворение: http://stackoverflow.com/questions/125341/how-do-you-do-impersonation-in-net запустить ваше приложение у пользователя, у которого есть доступ к этому каталогу. –

ответ

0

Добавление пользователя Everyone с полным разрешением на папку продукта на общем пути приложения позволит удалить непосредственно на этом диске

var installationDir = new DirectoryInfo(strInstallationPath);  

DirectorySecurity myDirectorySecurity = installationDir.GetAccessControl(); 
myDirectorySecurity.AddAccessRule(new FileSystemAccessRule("EveryOne", FileSystemRights.FullControl, (InheritanceFlags)3, PropagationFlags.NoPropagateInherit, AccessControlType.Allow)); 
installationDir.SetAccessControl(myDirectorySecurity); 
FileInfo myFile = installationDir.GetFiles("abc.txt"); 
myFile.Delete();