sankarisiva Ответов: 3

Изменение разрешения на доступ к пользовательским папкам из тех же учетных данных пользователя


Hi
My requirement is to give write access to a particular folder for the user who have read access when running a specified application. I tried with google all the options gives only error like "Attempted to perform an unauthorized operation". I am working in c#
 colsole application. Please help on this issue


Что я уже пробовал:

Я пробовал с
DirectoryInfo dInfo = new DirectoryInfo(FileName);
           DirectorySecurity dSecurity = dInfo.GetAccessControl();
           dSecurity.AddAccessRule(new FileSystemAccessRule(Account,
           Rights,
           ControlType));
           dInfo.SetAccessControl(dSecurity);

ZurdoDev

Вы должны использовать учетную запись с разрешениями. Я не совсем понимаю, о чем вы спрашиваете.

sankarisiva

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

Suvendu Shekhar Giri

Можете ли вы попробовать запустить visual studio от имени администратора? хотя не уверен...

sankarisiva

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

3 Ответов

Рейтинг:
1

Jochen Arndt

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

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


sankarisiva

Должен ли я предоставить право собственности на каталог текущему пользователю, используя имя владельца (имя пользователя администратора) по заданному владельцу

Jochen Arndt

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

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

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

sankarisiva

Можете ли вы помочь мне в динамическом изменении владельца каталога с помощью кода c#

Jochen Arndt

Почему вы хотите изменить владельца с помощью приложения C#?
Это потребовало бы, чтобы приложение также выполнялось как текущий владелец.

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

Рейтинг:
1

Dave Kreskowiak

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

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

Ваше "требование" - это не требование. Это полное непонимание того, как работает система безопасности Windows. Вы должны сначала узнать о безопасности, прежде чем называть это "требованием".


sankarisiva

Спасибо за ваш ответ. Этот ответ будет очень полезен, чтобы доказать, что это не будет реализовано для некоторых моих друзей, которые задали этот вопрос.

Рейтинг:
1

Mauro Leggieri

Дескриптор безопасности папки содержит список SID (пользователей, групп и, при присоединении к домену, компьютеров), доступ к которым разрешен или запрещен.

С другой стороны, процесс имеет связанный маркер. Токен содержит SID пользователя "пусковой установки" и группы, к которым он принадлежит. Вы можете временно изменить токен потока процесса с помощью API олицетворения.

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