Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалить все права на файл 
:(
    Опции темы
fedyunina
Дата 2.8.2012, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет



Добрый день! может завалялся у кого примерчик как удалить все права на файл (включая унаследованные)

таким образом это не получается сделать, ибо заранее не известно какие права назначены:

Код

 FileSecurity fSecurity = File.GetAccessControl(filePath, AccessControlSections.All);
 fSecurity.ResetAccessRule(new FileSystemAccessRule(account, rights, controlType));
 File.SetAccessControl(filePath, fSecurity);


Это сообщение отредактировал(а) fedyunina - 2.8.2012, 18:26
PM MAIL Skype   Вверх
fedyunina
Дата 3.8.2012, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 57
Регистрация: 1.3.2012
Где: Питер

Репутация: нет
Всего: нет



Удаление всех прав, включая унаследование и назначение новых:

Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.IO;
using System.Security.AccessControl;
using System.Security.Principal;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        string fileName = @"S:\img-725203305.pdf";

        private void Form1_Load(object sender, EventArgs e)
        {

            FileInfo file = new FileInfo(fileName);
            FileSecurity fSecurity = File.GetAccessControl(fileName);

            foreach (FileSystemAccessRule permissions in fSecurity.GetAccessRules(true, true, typeof(NTAccount)))
    {
       
     string login = permissions.IdentityReference.Translate(typeof(NTAccount)).Value.ToString();
     string permiss =  permissions.FileSystemRights.ToString();

     if ((login != "логин") && (login != "логин") && (login != "логин"))
     {
         fSecurity.SetAccessRuleProtection(true, false);
         fSecurity.RemoveAccessRule(new FileSystemAccessRule(login, permissions.FileSystemRights, AccessControlType.Allow));
     }
     fSecurity.AddAccessRule(new FileSystemAccessRule("логин", FileSystemRights.FullControl, AccessControlType.Allow));
     fSecurity.AddAccessRule(new FileSystemAccessRule("логин", FileSystemRights.FullControl, AccessControlType.Allow));

    }
   File.SetAccessControl(fileName, fSecurity);
   

        }
    }

PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0396 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.