На нашем сайте мы используем cookie для сбора информации технического характера и обрабатываем IP-адрес вашего местоположения. Продолжая использовать этот сайт, вы даете согласие на использование файлов cookies. Здесь вы можете узнать, как мы пользуемся файлами cookies.
Я согласен
логотип upread.ru

Как изменить разрешения на файл с помощью C#


Бывает, что у вас на компьютере имеются не удаляемые файлы или папки. Пишется что-то типа: Вам необходимо разрешение на выполнение этой операции, запросите разрешение на изменение этого файла. Причем самое интересное, что разрешение надо запрашивать у самого себя:



Кстати, такие файлы и папки остались после работы над одним интересным проектом по безопасности, в котором необходимо было создать защиту от копирования и удаления некоторых файлов. Но мы отвлеклись. Как же такие разблокировать файлы?

Щёлкнем правой кнопкой мыши, выберем «Свойства», посмотрим на вкладку «Безопасность». И вот что мы видим:



Есть некая группа пользователей «Все», которой запрещено делать что-либо с файлом. Если мы нажмём «Изменить» и переставим флажки (точнее, уберём запрещающие и поставим разрешающие), то файл можно будет спокойно удалить.



Но же программисты, верно? С помощью своей программы на C#, которая умещается буквально в несколько строчек:

String filename = @"C:\Users\Tanya\Desktop\prot\test.txt";
var account = new NTAccount("Все");
FileSecurity fSecurity = File.GetAccessControl(filename);
fSecurity.RemoveAccessRule(new FileSystemAccessRule(account, FileSystemRights.FullControl, AccessControlType.Deny));
fSecurity.AddAccessRule(new FileSystemAccessRule(account, FileSystemRights.FullControl, AccessControlType.Allow));
File.SetAccessControl(filename, fSecurity);
мы делаем все то же самое. Если же запрещены работы с файлом для текущего пользователя, то надо заменить пару строчек:

WindowsIdentity identity = WindowsIdentity.GetCurrent();
var account = new NTAccount(identity.Name);
Кстати, при работе над тем проектом узнал много нового насчёт политики безопасности Windows: не только как менять права на файлы (атрибуты), но и менять владельца, создавать пользователя, работать с локальным пользователем, запускать программу от другого пользователя и ещё много интересного. Как обычно, если будут время, то в следующих заметках расскажу об этом.




тегизаметки, си шарп, windows, политика безопасности, файлы





Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




AI Factory's Chess, уровень 12, 12 июня 2016 - С. Визгорев
Урок 16. Конвертация строк в числа на C#


© upread.ru 2013-2019
При перепечатке активная ссылка на сайт обязательна.
Задать вопрос
письмо
Здравствуйте! Вы можете задать мне любой вопрос. Если не получается отправить сообщение через эту форму, то пишите на почу up777up@yandex.ru
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.