Аутентификация пользователя для создания каталога в c # - PullRequest
0 голосов
/ 11 ноября 2010

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

String thepath = @"\\WONEATEMPMACHINE\C\ExampleData\"
DirectoryInfo dInfo = new DirectoryInfo(thepath);
DirectorySecurity dSecurity = dInfo.GetAccessControl();

dSecurity.AddAccessRule(new FileSystemAccessRule("DOMAINEXAMPLE\\wonea",
                        FileSystemRights.Write,
                        InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit,
                        PropagationFlags.None,
                        AccessControlType.Allow));

                        dInfo.SetAccessControl(dSecurity);

Directory.CreateDirectory(thepath + "\\newfolder");

1 Ответ

0 голосов
/ 11 ноября 2010

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

Если учетная запись (олицетворенная или выделенная учетная запись приложения) не имеет разрешения на создание по указанному пути, вероятно, она также не имеет права изменять правила доступа по этому пути.

Вероятно, есть несколько способов исправить это, но основная цель состоит в том, чтобы учетная запись, под которой работает приложение, должна была иметь разрешение на запись в родительский каталог во время создания подкаталога.

Если ваше приложение олицетворяет пользователей, одно из решений - поместить этих пользователей в группу, у которой уже есть разрешение.Альтернативно и, возможно, более безопасный подход заключается в том, что приложение может переключиться на одну учетную запись приложения, которая уже имеет разрешение на создание каталогов, назначить доступ к новому каталогу только зарегистрированному пользователю, а затем переключиться обратно на зарегистрированного пользователя.учетная запись.Другой вариант, возможно, самый безопасный, - просто создавать каталоги заранее, но я предполагаю, что не все они будут известны заранее.

Если приложение не выдает себя за пользователей,предоставить доступ к учетной записи приложения до запуска приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...