全局内存映射文件共享

Ant*_*ung 6 c# memory-mapped-files .net-core

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

\n\n
var security = new MemoryMappedFileSecurity();<br/>\nsecurity.AddAccessRule(new AccessRule<MemoryMappedFileRights>(\n                                    "everyone",\n                                    MemoryMappedFileRights.FullControl,\n                                    AccessControlType.Allow));\n\nvar memoryMappedFile = MemoryMappedFile.CreateNew(\n                            "global\\\\SharedMap",\n                            size,\n                            MemoryMappedFileAccess.ReadWrite,\n                            MemoryMappedFileOptions.DelayAllocatePages,\n                            security,\n                            HandleInheritability.Inheritable);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是在 .Net 框架中运行多年的代码。

\n\n

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

\n\n

需要安全性,以便我们可以从桌面客户端看到\xe2\x80\x9cadmin\xe2\x80\x9d服务内存。

\n\n

我们正在尝试将我们的系统一点一点地转换为.Net core 3.0。该系统包括数百个由我们位于世界各地的多家工厂制造的组件。因此,我们不能一次性替换 \xe2\x80\x9c 所有代码 \xe2\x80\x9d 。我们无法更改服务器使用的协议。

\n\n

我们在内存映射方面拥有多年的经验,但需要知道.Net core 中的哪些技术应该相当于 MemoryMappedFileSecurity?

\n