С# MemoryMappedFile, как установить права для связи между процессами?

Я использую memorymappedfile, и он работает, когда я общаюсь между двумя процессами. Однако я настроил службу Windows, которая работает с учетной записью ЛОКАЛЬНОЙ СИСТЕМЫ, и я хотел бы взаимодействовать с процессами, которые выполняются в текущей учетной записи домена, вошедшей в систему.

Я нашел accessrule и попробовал:

security.AddAccessRule(new AccessRule<MemoryMappedFileRights>(string.Concat(Environment.MachineName, "\\Administrator"), MemoryMappedFileRights.FullControl, AccessControlType.Allow));

а также :

security.AddAccessRule(new AccessRule<MemoryMappedFileRights>("Everyone"), MemoryMappedFileRights.FullControl, AccessControlType.Allow));

Но не сработало, как я могу предоставить ПОЛНЫЙ ДОСТУП КАЖДОМУ И/ИЛИ АНОНИМНОМУ ВХОДУ?


person dnx    schedule 03.12.2012    source источник
comment
Можете ли вы опубликовать свой код того, как вы открываете/создаете MemoryMappedFile?   -  person Jared Shaver    schedule 03.12.2012
comment
возможный дубликат Mutex не найден, даже когда ОС сообщает, что он существует   -  person Hans Passant    schedule 03.12.2012
comment
Джаред, все здесь, на msdn: msdn.microsoft.com/en-us/ библиотека/dd997372.aspx   -  person dnx    schedule 27.12.2012


Ответы (1)


Я нашел это!

Просто введите «Global\» в название сегмента:

«Global\SegmentMemoryName» и установите AccessRule для Everyone, и все готово!

person dnx    schedule 03.12.2012