У меня есть именованный канал, это создается в управляемом процессе. У меня есть 2-й процесс, который пытается открыть дескриптор файла для именованного канала, однако 2-й процесс работает под более низким полномочием, чем процесс, который создал именованный канал. Мое понимание - то, что я должен создать именованный канал в первом процессе с дескриптором безопасности как тот, описанный в этой статье MSKB: http://support.microsoft.com/kb/813414
Проблема состоит в том, что я не уверен, как сделать это в управляемом коде, статья KB использует C++. Кто-либо знает о способе создать именованный канал так, чтобы он мог быть считан и записан в анонимно, предпочтительно с помощью дескриптора безопасности? Понижение полномочий первого процесса, который создал именованный канал, не является опцией, мне нужен он для выполнения с высокими полномочиями.
Вы можете вызвать ConvertStringSecurityDescriptorToSecurityDescriptor API и передать дескриптор безопасности в SDDL. Если вам нужен подробный контроль над дескриптором, вы можете найти классы обёртки в сообществах с открытым исходным кодом, такие как этот. Здесь Here приведены примеры использования дескриптора безопасности на именованных каналах.