Я делаю небольшую программу для создания каталогов на общем сетевом ресурсе samba, и у меня возникла большая проблема с установкой разрешений для созданных каталогов.Я должен создать каталог на удаленном сетевом ресурсе и назначить разрешения для пользователей активного каталога.
Код, который я использую для установки разрешений:
public void SetPermission(string domain, string adminUser, string setUser, string pass, string path)
{
using (var impersonation = new Impersonation(domain, adminUser, pass))
{
var directory = !Directory.Exists(path) ? Directory.CreateDirectory(path) : new DirectoryInfo(path);
var directorySecurity = directory.GetAccessControl();
directorySecurity.AddAccessRule(new FileSystemAccessRule($"{domain}\\{setUser}", FileSystemRights.Write, AccessControlType.Allow));
directory.SetAccessControl(directorySecurity);
}
}
Всегда в каталоге. SetAccessControl () Я получаю:
- ошибка: «метод не выполнен с неожиданной ошибкой 50»
- трассировка стека:
- в System.Security.AccessControl.NativeObjectSecurity.Persist (имя строки, SafeHandlehandle, AccessControlSections includeSections, Object exceptionContext)
- в System.Security.AccessControl.NativeObjectSecurity.Persist (Строковое имя, AccessControlSections includeSections, Object exceptionContext)
- в System.Security.AccessersSisturity.Acessersistontont(String fullPath)
Я искал решение в течение многих часов и перепробовал множество комбинаций, но я не нашел ответа на вопрос, что такое ошибка 50, иРешение для установки разрешений.У меня вопрос: можно ли предоставить эти права?