дать разрешение правила доступа к конкретному пользователю в локальной сети

StackOverflow https://stackoverflow.com/questions/6080572

Вопрос

Мое приложение работает в локальной сети, а администратор создает папку для каждого пользователя на общей папке с этим кодом: Например, «me1» - пользователь в локальной сети.

DirectoryInfo d=new DirectoryInfo(@"\\server\Test");
DirectoryInfo di = new DirectoryInfo(@"\\server\Test\me1");
di.Create(d.GetAccessControl());
DirectorySecurity dSecurity = di.GetAccessControl();

dSecurity.AddAccessRule(new FileSystemAccessRule("everyone",
                                                 FileSystemRights.FullControl,
                                                 AccessControlType.Deny));
di.SetAccessControl(dSecurity);
.

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

DirectoryInfo dInfo = new DirectoryInfo(@"\\Server\Test\me1");
DirectorySecurity dSecurity = dInfo.GetAccessControl();
dSecurity.AddAccessRule(new FileSystemAccessRule("everyone",
                                                 FileSystemRights.FullControl,
                                                 AccessControlType.Allow));
dInfo.SetAccessControl(dSecurity);
.

Но ошибка «Доступ запрещен» произошло. Как можно установить разрешение на конкретный пользователь ?? Я имею в виду, что администратор дает разрешение конкретному пользователю, когда он создает каталог ?? спасибо.

Это было полезно?

Решение

Запретить правила контроля доступа (ACE) проверяются первыми, и все в группе GenaCodicetacode.Таким образом, первый ACE заблокирует весь доступ к каждому, включая вы пытаетесь изменить разрешения.

Вообще запрещенные правила - неправильный подход.Лучше добавить только правила доступа, предоставляющие вам доступ, который вы хотите предоставить, если нет, позволяют правилам соответствовать личности, что личность будет иметь доступом отказано - вам не нужно явно блокировать их.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top