我们正在尝试将以下代码从.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?