2010-01-15 2 views
6

У меня есть именованный канал, созданный в управляемом процессе. У меня есть второй процесс, который пытается открыть дескриптор файла для именованного канала, однако второй процесс работает под более низким привилегией, чем процесс, который создал именованный канал. Я понимаю, что мне нужно создать именованный канал в первом процессе с дескриптором безопасности, подобным описанному в этой статье MSKB: http://support.microsoft.com/kb/813414Как создать дескрипторы безопасности Windows в управляемом коде?

Проблема в том, что я не уверен, как это сделать в управляемом коде, В статье KB используется C++. Кто-нибудь знает способ создания именованного канала, чтобы его можно было читать и писать анонимно, предпочтительно используя дескриптор безопасности? Снижение привилегий первого процесса, создавшего именованный канал, не является вариантом, мне нужно, чтобы он работал с высокими привилегиями.

ответ

4

Вы можете pinvoke the ConvertStringSecurityDescriptorToSecurityDescriptor API и передать security descriptor in SDDL. Если вам нужен подробный контроль над описателем, вы можете найти классы-оболочки в сообществах с открытым исходным кодом, например this one. Here - это примеры использования дескриптора безопасности для именованных каналов.

Смежные вопросы