powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Управление правми доступа файла
3 сообщений из 3, страница 1 из 1
c# Управление правми доступа файла
    #39611285
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите пожалуйста доработать код указанный ниже? Задача простая - добавление и удаления группы в политике безопасности файла.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
               
// 1) Создаем новый файл - удаляем унанаследованую группу. Алгоритм выполняется группа НЕ УДАЛЯЕТСЯ
var fileXml = @"\\Share\test_ad.xml";                
(new XDocument(new XElement("root"))).Save(fileXml);

var security = File.GetAccessControl(fileXml);
var rules = security.GetAccessRules(true, true, typeof(SecurityIdentifier));
var rule = rules.Cast<FileSystemAccessRule>().FirstOrDefault(s => s.IdentityReference.Value == @"S-1-5-21-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx");
security.SetAccessRuleProtection(true, true);
if (rule != null)
{
      security.RemoveAccessRule(rule);
      File.SetAccessControl(fileXml, security);
}

// 2) Файл существует - удаляем группу. Алгоритм выполняется группа УДАЛЯЕТСЯ 
var fileXml = @"\\Share\test_ad.xml";
var fSecurity = File.GetAccessControl(fileXml);
var rules = fSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier));
var rule = rules.Cast<FileSystemAccessRule>().FirstOrDefault(s => s.IdentityReference.Value == @"S-1-5-21-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx");
// Запретить наследование
fSecurity.SetAccessRuleProtection(true, true);
if (rule != null)
{
      fSecurity.RemoveAccessRule(rule);
      File.SetAccessControl(fileXml, fSecurity);
} 

// 3) Файл существует - добавляем группу
var fileXml = @"\\Share\test_ad.xml";
var fSecurity = File.GetAccessControl(fileXml);
var rul = new FileSystemAccessRule(
@"S-1-5-21-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx",
FileSystemRights.ReadData | FileSystemRights.WriteData | FileSystemRights.AppendData | FileSystemRights.ReadExtendedAttributes | FileSystemRights.WriteExtendedAttributes | FileSystemRights.ExecuteFile | FileSystemRights.ReadAttributes | FileSystemRights.WriteAttributes | FileSystemRights.Delete | FileSystemRights.ReadPermissions | FileSystemRights.Synchronize,
InheritanceFlags.None,
PropagationFlags.None,
AccessControlType.Allow);
fSecurity.AddAccessRule(rul); // Ошибка при добавлении группы
File.SetAccessControl(fileXml, fSecurity);
...
Рейтинг: 0 / 0
c# Управление правми доступа файла
    #39611603
Nechto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Со вторым и третьим примером разобрался, остался первый

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var fileXml = @"\\Share\test_ad.xml";                
(new XDocument(new XElement("root"))).Save(fileXml);

var security = File.GetAccessControl(fileXml);
var rules = security.GetAccessRules(true, true, typeof(SecurityIdentifier));
var rule = rules.Cast<FileSystemAccessRule>().FirstOrDefault(s => s.IdentityReference.Value == @"S-1-5-21-xxxxxxxxx-xxxxxxxxxx-xxxxxxxxxx-xxxxxx");
security.SetAccessRuleProtection(true, true);
if (rule != null)
{
      security.RemoveAccessRule(rule);
      File.SetAccessControl(fileXml, security);
}



При создании файл, автоматически наследует права от родителя(сетевой папки).
После создания файла мне нужно удалить группу, во вкладке безопасности, но она по каким-то причинам не удаляется.
Помогите пожалуйста.
...
Рейтинг: 0 / 0
c# Управление правми доступа файла
    #39611619
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
NechtoПри создании файл, автоматически наследует права от родителя(сетевой папки).
После создания файла мне нужно удалить группу, во вкладке безопасности, но она по каким-то причинам не удаляется.
Вроде бы надо еще отключить наследование
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Управление правми доступа файла
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]