дать разрешение правила доступа к конкретному пользователю в локальной сети
-
08-09-2020 - |
Вопрос
Мое приложение работает в локальной сети, а администратор создает папку для каждого пользователя на общей папке с этим кодом: Например, «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 заблокирует весь доступ к каждому, включая вы пытаетесь изменить разрешения.
Вообще запрещенные правила - неправильный подход.Лучше добавить только правила доступа, предоставляющие вам доступ, который вы хотите предоставить, если нет, позволяют правилам соответствовать личности, что личность будет иметь доступом отказано - вам не нужно явно блокировать их.