На нашем сайте мы используем 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, политика безопасности, файлы








Украина и Яндекс
Как заставить работать джойстик в любой игре


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