共享全局内存映射文件

时间:2019-07-17 23:59:22

标签: c# .net-core memory-mapped-files

我们正在尝试将以下代码从.Net Framework移植到.Net Core。该代码创建了一个内存中的内存映射文件,运行在不同登录帐户下的应用程序可以访问该文件(无管理员权限)。 .Net Core中不存在MemoryMappedFileSecurity类,如何设置共享内存映射文件?

var security = new MemoryMappedFileSecurity();<br/>
security.AddAccessRule(new AccessRule<MemoryMappedFileRights>(
                                    "everyone",
                                    MemoryMappedFileRights.FullControl,
                                    AccessControlType.Allow));

var memoryMappedFile = MemoryMappedFile.CreateNew(
                            "global\\SharedMap",
                            size,
                            MemoryMappedFileAccess.ReadWrite,
                            MemoryMappedFileOptions.DelayAllocatePages,
                            security,
                            HandleInheritability.Inheritable);

这是在.Net框架中使用了多年的代码。

内存是由Windows服务创建的(没有备份文件)。 然后,由非管理员的桌面客户端应用访问内存。

需要安全性,以便我们可以从桌面客户端看到“ admin”服务内存。

我们正在尝试将我们的系统逐步转换为.Net core 3.0。该系统包括在全球多个国家/地区的几家工厂制造的数百个组件。因此,我们不能立即“替换所有代码”。我们无法更改服务器使用的协议。

我们在内存映射方面拥有多年的经验,但是需要知道.Net核心中的什么技术应该等效于MemoryMappedFileSecurity?

0 个答案:

没有答案