Windows: установка атрибутов безопасности на уровне детализации процесса - PullRequest
1 голос
/ 12 сентября 2011

Фон: у меня есть служба Windows, которая работает в фоновом режиме (очевидно), и использует утилита для выполнения определенной интерактивной задачи и отправки данных обратно на службу по именованной трубе. Утилита запускается всякий раз, когда служба считает нужным и живет всего несколько секунд.

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

Я планирую решить проблему, создав именованный канал с атрибутами безопасности. такие, которые предоставляют доступ на запись для текущего вошедшего в систему пользователя в контексте whos программа запущена, а у меня возник вопрос: Могу ли я разрешить доступ к этому именованному каналу только процессу , используя его (или его поток) ручка

Или поставить иначе: может ли механизм безопасности Windows (Vista / 7 / более поздняя версия) перейти на степень детализации на уровне процесса?

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

Заранее спасибо.

1 Ответ

1 голос
/ 12 сентября 2011

Вы не можете защитить объект с помощью идентификатора процесса (потому что процессы не являются участниками безопасности), но вы можете использовать GetNamedPipeClientProcessId после установления соединения и отменить все запросы, если идентификатор процесса не тот, который вам нравится.

...