c# - 共享全局内存内存映射文件
问题描述
我们正在尝试将以下代码从 .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 服务创建(没有后备文件)。然后由不是管理员的桌面客户端应用程序访问内存。
需要安全性,以便我们可以从桌面客户端看到“管理”服务内存。
我们正在尝试将我们的系统逐个转换为 .Net core 3.0。该系统包括由我们在世界不同国家的几家工厂生产的 100 多个组件。因此,我们不能一次“替换所有代码”。我们无法更改服务器使用的协议。
我们在内存映射方面有多年经验,但想知道 .Net core 中的什么技术应该等同于 MemoryMappedFileSecurity?