Как добавить атрибуты безопасности для учетной записи, не обладающей правами администратора, в методе named API для Win API - PullRequest
3 голосов
/ 16 августа 2010

Я создаю именованный канал в службе Windows, работающей в локальной системной учетной записи с атрибутом безопасности как Intptr.Zero в методе CreateNamedPipe () Windows API.

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

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

Ответы [ 3 ]

3 голосов
/ 16 августа 2010

Наконец, после долгих поисков, я нашел решение своей проблемы.Я использовал еще два метода win api для настройки доступа к учетной записи пользователя.методы следующие:

  1. SetSecurityDescriptorDacl ()
  2. InitializeSecurityDescriptor ()

для подробного ответа вы можете обратиться к тому, что я упоминал ... http://www.codeproject.com/KB/threads/CodeFX_IPC.aspx?display=Print

Спасибо за ваши ответы ....

0 голосов
/ 16 августа 2010

Что именно вы не можете сделать, и что вы пробовали?Необходимо изменить тип параметра последнего параметра с IntPtr на ref SECURITY_ATTRIBUTES и явно передать параметры безопасности.

Создание дескриптора безопасности вручную в коде может привести к путанице.Использование строкового представления с ConvertStringSecurityDescriptorToSecurityDescriptor делает его немного менее болезненным.

0 голосов
/ 16 августа 2010

Я сам столкнулся с этой проблемой в пятницу.Если вы используете .net 3.5 или выше , см. Мой вопрос о том, как установить разрешения. с помощью System.IO.Pipes (В итоге создайте PipeSecurity и добавьте правила доступа для группы пользователей с разрешениями на чтение / запись..)

...